Python의 초기 바인딩된 기본 매개변수: 일반적인 함정 방지
Python에서 기본 매개변수로 작업할 때 잠재적인 위험을 인지하는 것이 중요합니다. 초기 바인딩으로 인해 발생하는 문제. 변경 가능한 데이터 구조(예: 목록)로 초기화된 매개변수와 같은 초기 바인딩된 기본 매개변수는 함수가 여러 번 호출될 때 예기치 않게 동작할 수 있습니다.
다음 예제 함수를 고려하세요.
def my_func(working_list=[]): working_list.append("a") print(working_list)
이 함수를 처음 호출하면 의도한 대로 빈 목록이 초기화되지만 이후 호출에서는 동일한 목록이 업데이트됩니다. 호출할 때마다 목록이 커지면서 의도하지 않은 동작이 발생할 수 있습니다.
이 문제를 방지하려면 변경 가능한 기본 매개변수에 None 기본값을 제공하고 함수 본문 내에서 이를 명시적으로 확인하는 것이 좋습니다. 예제 함수를 수정하는 방법은 다음과 같습니다.
def my_func(working_list=None): if working_list is None: working_list = [] working_list.append("a") print(working_list)
기본값을 없음으로 설정하고 명시적으로 테스트하면 함수를 호출할 때마다 새 빈 목록이 생성되어 함수가 예상대로 작동하는지 확인합니다. .
추가 고려 사항
PEP 8 지침에 따르면 is 또는 None과의 비교가 == 또는 !=보다 선호됩니다. 이렇게 하면 명확성이 보장되고 잠재적인 오류 위험이 줄어듭니다.
코드에서 예상치 못한 문제를 방지하려면 기본 매개변수를 사용할 때 이러한 지침을 염두에 두십시오.
위 내용은 Python 함수에서 변경 가능한 기본 매개변수를 사용하여 예기치 않은 동작을 방지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!