사용 시 현재 코드 블록에 적용되며 global
키워드 다음에 나열된 식별자가 전역변수임을 나타냄
여기 나열된 이름은 같은 코드 블럭에서 global
키워드 이전에 등장할 수 없음
# 예시
def check_global():
global my_name
print(my_name)
# 불가능
def check_global():
my_name = '민수'
global my_name
선언되지 않은 변수라고 하더라도 global
다음에 나열될 수 있음. 하지만 선언되지 않은 변수를 사용한다면 에러 발생
global을
제외하고 가장 가까운 scope의 변수가 연결됨
global
과 마찬가지로 nonlocal
이후에 나열된 변수들은 같은 코드 블럭에서 nonlocal
전에 사용될 수 없음
global
과는 다르게 사용하지 않는 변수라도 nonlocal
다음에 나열하면 즉시 에러가 발생. 즉 이미 존재하는 변수만 연결 가능
# 예시
a = 1
def check_global():
a = 2
def check_local():
nonlocal a
print(a)
check_local()
check_global() # 2