LEGB 규칙이 적용되는 방식에 대해 꽤 혼란스러워합니다. I Local은 함수 또는 클래스 메서드 내에있을 수 있음을 알고 있습니다 (예 : ). 동봉 된 것은 동봉 함수 (예 : 함수가 다른 함수 안에 싸인 경우) 일 수 있습니다. Global은 실행 스크립트 자체의 최상위 디렉토리 인 을 가리키며, Built-in은 파이썬이 자체적으로 예약하는 특별한 이름 입니다. 출력은네임 스페이스 - 범위 Python
a = 'global'
def outer():
def len(in_var):
print('called my len() function: ')
l = 0
for i in in_var:
l += 1
return l
a = 'local'
def inner():
global len
nonlocal a
a += ' variable'
inner()
print('a is', a)
print(len(a))
outer()
print(len(a))
print('a is', a)
출력
('a is', 'local')
called my len() function:
5
15
('a is', 'global variable')
저는 파이썬 3.5.2에서 다른 결과를 얻고 있습니다. –