Python
14. 변수의 범위.
HJ76
2023. 3. 9. 17:48
1. 스코프(scope)
- 변수의 접근할 수 있는 범위
- local : 가장 가까운 함수안의 범위
- global : 함수 바깥의 변수 또는 import된 module
num1 = 10 # 글로벌 변수
def func1():
num2 = 20 # 로컬 변수
print(num2)
print(num1)
# num2는 로컬 변수이므로 함수 바깥에서 사용할 수 없음
print(num2) # NameError: name 'num2' is not defined
print(num1) # 10
func1() #20
# locals() : 로컬 변수를 확인해주는 함수
# globals() : 글로벌 변수를 확인해주는 함수
num1 = 10 # 글로벌 변수
def func1():
num2 = 20 # 로컬 변수
print(num2)
print('num1 로컬 변수 : ', 'num1' in locals())
def func2():
num2 = 20 # 로컬 변수
print('num2 로컬 변수 : ', 'num2' in locals())
def func3():
print('num1 글로벌 변수 :', 'num1' in globals())
func1()
'''
20
num1 로컬 변수 : False
'''
func2() # num2 로컬 변수 : True
func3() # num1 글로벌 변수 : True
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() # 5
num1 = 10
def func5():
print(num1)
def func6(num):
global num1
num1 = num
func5()
func6(5) # num1에 매개변수 5를 대입
func5() # 5