4
저는 Python을 배우고 있으며, 제가 이해하지 못하는 예제를 발견했습니다. 공식 튜토리얼에서는, 다음과 같은 코드가 주어집니다 : "기본 값 :Python의 기본 매개 변수 범위
i = 5
def f(arg=i):
print(arg)
i = 6
f()
하여 C++에서오고, 이것이 5. 인쇄합니다 그러나 나는 또한 기술적 인 설명을 이해하고 싶은 것을 나를 위해 직관적으로 의미가 있습니다 정의 범위에서 함수 정의 지점에서 평가됩니다. " 여기서 "정의 범위"는 무엇을 의미합니까?
* "범위 정의"*는 함수가 정의되는 범위, 즉'def = '행이 실행되는'i = 5 '를 포함하는 범위를 의미합니다. 참고 자료 : http://stackoverflow.com/q/1132941/3001761 – jonrsharpe
"범위 정의": 파이썬에서는 로컬 범위의 함수, 즉 함수 내의 함수를 가질 수 있습니다. C++에서 가장 가까운 것은 람다이며, C++에서 newish입니다 (파이썬에는 람다도 있습니다). – cdarke
짧은 대답 : 기본값은'f.func_defaults'에 터플로 저장되며, 그 값은 코드에서'(5,)'입니다. – gdlmx