본문 바로가기
개발 관련 이야기

[Python] 전역 변수 import 하기

by 꿈틀쓰 2023. 4. 4.

파이썬을 사용하다가 전역 변수를 사용할 일이 생겼다

 

그런데 분명 값이 바뀌어야 하는데 초기값이 출력되는 문제가 발생했다.

 

예를 들어

# a.py
aa = 1

def add():
    aa += 1

위처럼 a라는 모듈에 aa라는 변수를 전역으로 사용하고 싶다. aa는 값이 계속 바뀐다.

 

 

# b.py
from a import aa, add

print(aa)
# >> 1

add()

print(aa)
# >> 1 ???

 

b라는 모듈에서 aa를 import하여 출력하고 add() 함수를 사용하여 aa를 2로 만들고 싶었다.

 

그런데 출력하니 다시 1이 나오는 것이 아닌가?

 

 

알고보니 import의 변수는 attach 되는 모듈에 종속된다고 한다.

 

즉, from a import aa를 하면 aa는 b 모듈에 직접적으로 import 되었기 때문에 a 모듈에서 아무리 변경해도 의미가 없는 것이다.

 

aa를 전역으로 쓰려면 a라는 모듈에 종속시켜야 한다.

# b.py
import a

print(a.aa)
# >> 1

a.add()

print(a.aa)
# >> 2

 위와 같이 a 모듈에서 aa를 접근해야 하는 것이다.

 

add는 어차피 global로 aa를 사용하고 있기 때문에 따로 import 해줘도 상관없다.

 

 

 

파린이는 이렇게 또 배웁니다ㅠㅠ

댓글