728x90
반응형
SMALL
1. 스코프(scope)
- 변수의 접근할 수 있는 범위
- local: 가장 가까운 함수안의 범위
- global: 함수 바깥의 변수 or import된 module
num1 = 10 # 글로벌 변수
def func1():
num2 = 20 # 로컬 변수
print(num2)
print(num1)
print(num2) # NameError: name 'num2' is not defined
num1 = 10
def func1():
num2 = 20
print(num2)
print(num1)
func1() # 로컬 변수를 가져오고싶으면 함수를 찍거나 리턴해서 가져오면 됌
10
20
# locals(): 로컬 변수를 확인해주는 함수
# globals(): r글로벌 변수를 확인해주는 함수
num1 = 10 # 글로벌 변수
def func1():
num2 = 20 # 로컬 변수
print('num1 로컬 변수: ', 'num1' in locals())
#num1 을 보낼때 문자열로 보내야함
def func2():
num2 = 20 # 로컬 변수
print('num2 로컬 변수: ', 'num2' in locals())
def func3():
print('num1 글로벌 변수: ', 'num1' in globals())
func1()
func2()
func3()
num1 로컬 변수: False
num2 로컬 변수: True
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 # 로컬변수에 값을 저장했으므로 글로벌 변수의 값이 변경x
func5()
10
func6(5)
func5()
10
10
7
728x90
반응형
LIST
'파이썬' 카테고리의 다른 글
| 랜덤 모듈 (0) | 2023.03.09 |
|---|---|
| 콜백 함수 (0) | 2023.03.09 |
| 사용자 정의 함수(함수만들기) (0) | 2023.03.09 |
| 세트(set) (0) | 2023.03.08 |
| 자료구조- 딕셔너리(dictionary) (0) | 2023.03.08 |

