프로그래밍(Programming)/Python
global 키워
3DMP
2025. 3. 12. 13:50
함수 내에서 전역변수를 단순히 읽기만 한다면, 굳이 global 키워드를 사용하지 않아도 접근할 수 있습니다.
그러나 그 변수를 수정(할당) 하려고 하면 파이썬은 이를 지역 변수로 인식하게 되어, 전역변수의 값을 참조할 때 UnboundLocalError가 발생합니다.
예시를 보겠습니다:
one_server_instance = 10
def read_instance():
# 전역변수 값을 읽기만 할 때는 문제 없음
print(one_server_instance)
read_instance() # 출력: 10
def modify_instance():
# global 선언 없이 할당을 시도하면 UnboundLocalError 발생
one_server_instance = one_server_instance + 1
print(one_server_instance)
modify_instance() # UnboundLocalError: local variable 'one_server_instance' referenced before assignment
def modify_instance_global():
global one_server_instance
one_server_instance = one_server_instance + 1
print(one_server_instance)
modify_instance_global() # 출력: 11
따라서, 함수 안에서 전역변수를 수정하려면 반드시 global one_server_instance를 선언해주어야 합니다.
반응형