3 개의 파일이 있습니다. 하나는 변수를 정의하고 다른 두 개는 필수 모듈을 포함합니다.가져온 파일의 Python 추출 변수
variable.py
my_var = ""
test.py
import variable
def trial():
variable.my_var = "Hello"
main.py (작동하지 않는)
from variable import *
from test import trial
if __name__ == "__main__":
trial()
print my_var
그리고 실행 main.py
, 아무것도 표시하지 않습니다. 나는이 같은 main.py
을 변경하는 경우에는
main.py는
import variable
from test import trial
if __name__ == "__main__":
trial()
print variable.my_var
을 (작업) 그리고 그것은 나에게 기대 출력 즉 Hello
을 제공합니다.
저의 경우 variable.py
에는 더 많은 변수가 포함되어 있으며 액세스하는 동안 variable.<variable name>
을 사용하고 싶지 않습니다. 그들을 수정하는 동안 variable.<variable name>
을 사용하면 사용자의 입력에 따라 한 번만 수정 한 다음 여러 파일에 여러 번 액세스 할 수 있으므로 문제가되지 않습니다.
지금 내 질문은 main.py
에있는 변수를 모두 test.py
으로 수정 한 후 variable.
프리픽스없이 사용하는 것입니다.
''변수 가져 오기 * '를하면'변수 '모듈의 이름을 로컬 변수에 추가합니다 따라서 네임 스페이스는 가져 오기가 발생할 때 변수의 값을 가리 킵니다.이제 원래 모듈을 변경하면 해당 변경 사항은 가져온 기호에 반영되지 않습니다. – dhke
@dhke 그래, 내가 그 두 변종의 작업에서 이해했다. 그러나 제 질문은 다소 다릅니다. – RatDon
[관련 질문] (http://stackoverflow.com/questions/4758562/modifying-a-variable-in-a-module-imported-using-from-import). [좋은 답변] (http://stackoverflow.com/a/4764225/6525140). – mhoff