Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 기본 매개변수 값을 함수로 설정하는 방법은 무엇입니까?

<시간/>

Python의 기본 매개변수 값 처리는 대부분의 새로운 Python 프로그래머를 귀찮게 할 수 있는 몇 가지 사항 중 하나입니다.

문제의 원인은 "변경 가능한" 개체를 기본값으로 사용하는 것입니다. 즉, 목록이나 사전과 같이 제자리에서 수정할 수 있는 값입니다.

두 번째 인수가 제공되지 않으면 함수가 호출될 때마다 새 목록이 생성되므로 EXPECTED OUTPUT은 다음과 같습니다.

[12]
[43]

함수가 정의될 ​​때 새로운 목록이 한 번 생성되며, 각 연속 호출에서 동일한 목록이 사용됩니다.

Python의 기본 인수는 함수가 호출될 때마다가 아니라 함수가 정의될 ​​때 한 번 평가됩니다. 즉, 변경 가능한 기본 인수를 사용하고 변경하면 이후에 함수를 호출할 때에도 해당 개체를 변경하게 됩니다.

우리가 해야 할 일

함수가 호출될 때마다 기본 arg를 사용하여 인수가 제공되지 않았다는 신호를 사용하여 새 개체를 만듭니다(없음이 좋은 선택인 경우가 많음).

예시

def func(data=[]):
    data.append(1)
    return data
func()
func()
def append2(element, foo=None):
    if foo is None:
        foo = []
    foo.append(element)
    return foo
print(append2(12))
print(append2(43))

출력

[12]
[43]