KDT/Python
변수의 범위(Local, Global)
jhwannabe
2023. 3. 9. 15:57
1. 스코프(Scope)
- 변수의 접근할 수 있는 범위
- local: 가장 가까운 함수안의 범위
- global: 함수 바깥의 변수 또는 import된 module
num1 = 10 # global variable (전역변수)
def func1():
num2= 20 # local variable (지역변수)
print(num2)
print(num1) # 10
print(num2) # NameError: name 'num2' is not defined
print(num1) # 10
func1() # 20
# locals(): 로컬 변수를 확인해주는 함수
# globals(): 글로벌 변수를 확인해주는 함수
def func1():
num2 = 20
print('num1 로컬 변수: ', 'num1' in locals())
def func2():
num2 = 20
print('num2 로컬 변수: ', 'num2' in locals())
def func3():
num2 = 20
print('num1 글로벌 변수: ', 'num1' in globals())
def func4():
num2 = 20
print('num2 글로벌 변수: ', 'num2' in globals())
func1() # num1 로컬 변수: False
func2() # num2 로컬 변수: True
func3() # num1 글로벌 변수: True
func4() # num2 글로벌 변수: False
num1 = 10
def func4():
num1 = 20
print(num1)
func4() # 20
print(num1) # 10
2. Global 키워드
- 함수 내부에서 로컬변수가 아닌 글로벌 변수로 사용하게 함
num1 = 10
def func5():
print(num1)
def func6(num):
num1 = num # 로컬 변수에 값을 저장했으므로 글로벌 변수에 값이 변경되지 않음
func5() # 10
func6(5)
func5() # 10
num1 = 10
def func5():
print(num1)
def func6(num):
global num1 # 글로벌 변수로 사용
num1 = num
func5() # 10
func6(5)
func5() # 5
728x90
반응형