이번 편에서는 지역변수와 전역변수에 대해 알아보고자 한다.
지역변수는 뭐고 전역변수는 뭘까? 말 그대로 지역 변수란 함수 내에서만 쓸 수 있는 변수이며, 전역 변수는 해당 함수 뿐만 아니라 모든 곳에서 쓸 수 있는 변수이다.
매번 그렇듯 간단한 예제와 함꼐 알아보자.
처음 나오는 변수는 전역변수이고, 함수에서 정의한 지역변수이다. 따라서 함수를 실행시키고 변수값을 확인해도 처음에 설정한 10이 출력된다.
local_value = 10
def local():
local_value = 20
local()
print(local_value)
10
이번에도 마찬가지로 함수에서 생성한 지역 변수는 함수에서만 20이 적용되고 밖으로 나오면 다시 10이 출력된다.
local_value = 10
def local():
local_value = 20
print(local_value)
local()
print(local_value)
20
10
만약 함수애서 아무것도 입력하지 않으면? 기존의 전역 변수 값이 그대로 적용되는 것을 알 수 있다.
local_value = 10
def local():
print(local_value)
local()
print(local_value)
10
10
그런데 만약 함수에서도 전역 변수를 사용하고 싶다면? 그럴떄는 global이란 것을 사용한다.
아래는 전역 변수값이 10이었지만 함수를 실행시키면서 전역 변수값이 15로 변경된것을 알 수 있다.
local_value = 10
def local():
global local_value
local_value = 15
local()
print(local_value)
10
전역 함수 관련해서 아래처럼 globals도 활용 가능하다. 이렇게 하면 globals()다음에 나오는 string을 전역 변수로 설정할 수 있다.
local_value = 10
def local():
globals()["local_value"]=15
local()
print(local_value)
15
15
마지막으로 globals()를 이용하면 반복문을 이용해서 변수 생성도 가능하다. 잘 쓰이지는 않겠지만 사용하면 편리하다.
(f string도 적용이 된다. globals()[f"global_{i}"]= 15)
def local():
for i in range(1,5):
globals()["global_{}".format(i)]= 15
local()
print(global_1)
print(global_2)
15
15
그리고 당연히 아래처럼도 사용 가능하다.
def local():
for i in range(1,5):
globals()["global_"+str(i)]= 15
혹시 더 추가할만한 내용이 있으면 추후에 추가하도록 하겠다.
끝!
'Python > Study' 카테고리의 다른 글
python 기초 - decorator (0) | 2023.01.15 |
---|---|
python 기초 - 변수가 있는지 확인하기 (hasattr / getattr / setattr) (0) | 2023.01.15 |
python 기초 - 예외 처리 (try, except, finally, Error처리) (1) | 2023.01.15 |
python 기초 - 한줄 수식 정리 (for, if 등) + zip, *zip (0) | 2023.01.15 |
python 기초 - class (부모, 자식 class, init, super) (0) | 2023.01.15 |