(포인터 관련)
Call by Value
값만 넘김
Call by Reference
메모리 주소를 넘김
파이썬 함수 호출 방식
Call by Object Reference
호출자와..변수..
swap 할 때 리스트의 경우 listA[0], listA[1] 이 값을 넣어주면 값이 바뀌지 않음 주의.
💥주의!!
list_a = list_b
두 리스트 같아짐
list_a = list_b[:]
리스트 복사
Scoping Rule
지역변수
전역변수
함수 내에 전역변수와 같은 이름의 변수를 선언하면 새로운 변수가 생김(전역변수와 같지 않음)
같아지고 싶으면 global 사용.
Recursive Function : 재귀함수
자기자신을 호출
ex) factorial
Function type hints
def type_hint(name : str) -> str: #화살표 뒤는 리턴 값
return f"Hello"
사용자에게 타입을 알려줄 수 있음
Docstring
세 개의 따옴표로 주석 설명
Parameters:
Returns: 이런식으로
VS CODE에서 extension Docstring Generator가 있음
함수 작성 가이드라인
- 함수는 가능하면 짧게(줄 수)
- 함수 이름에 함수의 역할, 의도가 명확히 드러날 것
- get_hello_word
- 하나의 함수에는 유사한 역할을 하는 코드만 포함
- 인자로 받은 값 자체를 바꾸지 말 것 (임시변수 선언)
어떤 경우에 함수를 만들지?
- 공통 코드
- 복잡한 수식
*사람이 이해할 수 있는 코드를 짜자*
코드는 하나의 보고서다.
코딩 컨벤션
tab과 4space 혼용x
flake8로 코딩컨벤션 체크 가능
최근에는 black 모듈을 활용함 → 알아서 고쳐줌