파이썬 함수에서 x 사용을 멈춰야 하는 이유

파이썬 함수에서 x 사용을 멈춰야 하는 이유
TILPosted On Jul 6, 20242 min read

/assets/img/2024-07-06-StopUsingxinPythonFunctionParameters_0.png

무언가가 합법적이라고 해서 좋은 것은 아닙니다.

이유없이 낯선 사람에게 무례하게 행동하는 것은 불법이 아니라고 해서 (보통) 좋은 일이 아닙니다.

def func(ls: List[str] = []):
    ...

파이썬 함수에서 변경 가능한 기본 인수도 허용됩니다. 아래와 같은 코드를 실행할 수 있고 파이썬은 이를 허용합니다. 그러나 이는 좋지 않은 관행입니다.

가변성의 의미

데이터 구조가 생성 후에 변경될 수 있다면 해당 데이터 구조는 가변적입니다. 리스트, 딕셔너리 및 세트와 같은 데이터 유형은 파이썬에서 가변적입니다.

데이터 구조가 변경되지 않는(불변한) 것은 데이터 구조가 생성 후 변경되지 않는 경우입니다. 정수, 부동 소수점, 부울, 문자열, None, 튜플 및 frozenset과 같은 데이터 유형은 파이썬에서 변경되지 않습니다.

기본 인수를 사용하는 이유

def greet(name: str, greeting: str='hello'):
    print(greeting, name)

greet('tom')
# hello tom

greet('tom', greeting='ni hao')
# ni hao tom

위 함수에서 greeting은 기본 인수입니다.

greeting에 값을 전달하지 않고 선택하는 경우 기본값 hello를 갖습니다.

만약 우리가 인사말에 값을 전달하면, 전달한 값을 사용합니다.