LEGB (Local-> Enclosing-> Global-> Built-in)는 프로그램을 실행할 때 Python 인터프리터가 따르는 논리
아래 간단한 예제로 Scope을 알수 있다.
결과는?
name = 'g'
def main():
def a():
name = 'a'
def b():
nonlocal name
name = 'b'
def c():
global name
name = 'd'
name = 'hello'
a()
print('a ' + name)
b()
print('b ' + name)
c()
print('c ' + name)
print('g ' + name)
main()
print('main ' + name)
print('g ' + name)
if __name__ == "__main__":
main()
문제 1: 위를 출력했을때 결과는?
문제 2: nonlocal을 주석처리 했을때 결과는?
**힌트
**결과
g g
a hello
b b
c b
main d
g d
a hello
b b
c b