>백엔드 개발 >파이썬 튜토리얼 >Python에서 변경 가능한 기본 매개변수를 사용하여 예기치 않은 동작을 방지하려면 어떻게 해야 합니까?

Python에서 변경 가능한 기본 매개변수를 사용하여 예기치 않은 동작을 방지하려면 어떻게 해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-15 14:08:10529검색

How Can I Avoid Unexpected Behavior with Mutable Default Parameters in Python?

Python의 기본 매개변수 관련 문제 방지

Python의 기본 매개변수로 작업할 때 특히 변경 가능한 인수의 경우 특정 복잡성이 발생할 수 있습니다. 이러한 문제를 방지하려면 기본 매개변수의 동작을 해결하는 것이 중요합니다.

예를 들어 다음 함수를 고려하세요.

def my_func(working_list=[]):
    working_list.append("a")
    print(working_list)

초기 호출 시 빈 목록 기본 매개변수가 예상대로 작동합니다. . 그러나 후속 호출에서는 초기에 빈 목록인 기본 매개변수가 이전 실행에서 추가된 요소를 유지하는 예기치 않은 동작이 발생합니다.

이 문제를 해결하고 각 함수 호출로 새로운 빈 목록을 생성하기 위해 Python은 두 가지 접근 방식을 제공합니다. :

1. None에 대한 테스트:

def my_func(working_list=None):</p><pre class="brush:php;toolbar:false">if working_list is None: 
    working_list = []
working_list.append("a")
print(working_list)

2. 조건부 할당:

def my_func(working_list=None):</p><pre class="brush:php;toolbar:false">working_list = [] if working_list is None else working_list
working_list.append("a")
print(working_list)

두 솔루션 모두 새로운 빈 목록은 요소를 추가하기 전에 초기화되므로 각 함수 호출을 격리하고 이전 목록에서 데이터가 누적되는 것을 방지합니다. 처형.

위 내용은 Python에서 변경 가능한 기본 매개변수를 사용하여 예기치 않은 동작을 방지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.