파이썬을 사용하다가 전역 변수를 사용할 일이 생겼다
그런데 분명 값이 바뀌어야 하는데 초기값이 출력되는 문제가 발생했다.
예를 들어
# 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 해줘도 상관없다.
파린이는 이렇게 또 배웁니다ㅠㅠ
'개발 관련 이야기' 카테고리의 다른 글
[쿠버네티스] 쿠버네티스 기본 개념 설명 (0) | 2023.09.10 |
---|---|
[Shell script] command의 user prompt의 input을 파일로 입력하기 (0) | 2023.05.25 |
[Rust] 디펜던시 추가하기 (0) | 2023.03.21 |
[Rust] cargo 사용해서 첫번째 프로젝트 만들기 (0) | 2023.03.17 |
[Rust] 우분투에 러스트 설치하기 (0) | 2023.03.16 |
댓글