반응형
들어가기 전에...
- 먼저 전역, 지역 변수에 대한 이해가 있어야함.
global
파이썬에서는 함수내에서 전역변수를 사용하려면 global 키워드를 사용해야 한다.
바로 예제부터 보자.
g = 1
def test():
g = 2
print(g)
test()
print(g)
# 결과
# 2
# 1
test 함수 내부에서 선언한 g = 2 는 전역변수 g = 1 이 아닌 새롭게 선언된 변수가 된다.
따라서 전역변수 g를 가져와서 사용하려면 함수내에서 global 키워드를 붙여서 선언 후 사용해야 한다.
g = 1
def test():
global g
g = 2
print(g)
test()
print(g)
# 결과
# 2
# 2
nonlocal
함수가 중첩되어 전역변수를 사용하려면 nonlocal 키워드로 선언해주어야 한다.
a = 0
def outer():
global a
a += 1
print(a)
b = 1
def inner():
global b
b += 1 # 에러 발생
print(b)
inner()
print(a)
outer()
outer() 함수내부에서 선언된 지역변수b 를
outer()함수 내부의 inner()함수 에서 사용하기위해 global 키워드를 사용했지만,
해당 전역변수 b가 없다는 에러를 발생시킨다.
지역변수를 사용하기 위해서는 전역변수와 같이 nonlocal 키워드로 미리 선언하고 사용해야한다.
a = 0
def outer():
global a
a += 1
print(a)
b = 1
def inner():
nonlocal b
b += 1
print(b)
inner()
print(a)
outer()
# 결과
# 0
# 1
# 2
'Dev > Python' 카테고리의 다른 글
python - self 매개변수에 대해 (0) | 2023.09.18 |
---|---|
클래스 (0) | 2023.09.14 |
[python, venv, virtualenv] 파이썬 버전관리 - virtualenv (0) | 2023.09.12 |
python 함수 (0) | 2023.09.12 |
print 에서 end (0) | 2023.09.12 |