2014-06-17 2 views
0

다른 모듈의 주 모듈에서 가져온 모듈의 범위 변수에 액세스해야합니다.주 모듈에서 호출 된 모듈의 범위 변수에 액세스하는 방법은 무엇입니까?

내 응용 프로그램에서는 동일한 디렉토리에 모듈이 있습니다. 이 모듈 중 하나는 다른 모듈을 사용하는 구성 변수를로드하기 위해 configparser를 사용하여 config_file.ini를 읽는 모듈입니다.

동일한 파일을 두 번 열어 두는 문제를 피하기 위해 config_file.ini를 관리하는 모듈을 두 번 이상 가져 오지 않습니다.

config_file.ini를 관리하는 모듈 (파일을 업데이트하는 기능 만)에서는 함수와 클레임을 사용하지 않지만 변수는로드하지 않습니다.

그래픽 개념 :

Module_A :

# !usr/bin/python3 
# -*- coding: UTF-8 -*- 
import module_B 
import module_C 
print(module_B.my_var) 
print(module_C.my_var) 

Module_B :

# !usr/bin/python3 
# -*- coding: UTF-8 -*- 
my_var = "This is the Module B" 

Module_C :

# !usr/bin/python3 
# -*- coding: UTF-8 -*- 
my_var = "This is the Module C" 
print(module_B.my_var) 

내가 Python3.x

사용하고 있습니다

별도의 클래스로 캡슐화해야합니까? 나는 OOP에 경험이 아니에요 :-(

답변

0

모듈은 한 번만로드된다. 즉 이미 수입 된 모듈

을 다시 이후 수입, 단지로드 당신의 당신의 하나 개의 모듈에 config.ini 다음을 가져 . 다른 사람에 해당 모듈에서 변수

+0

하지만, :.? 나가서 설명하자면 NameError : 이름을' 'module_B'가 정의되지 않았습니다. ' – Trimax

+0

@Trimax : 그러나 그것이 필요한 경우에만'Module_C'가'Module_B'를 가져와야하기 때문입니다. 그것은'config.ini' 파일을로드하는 것과 아무런 관련이 없습니다. –

0

당신이 Module_C에 Module_B.my_var에 액세스하려면, 당신은 import Module_B에 Module_C에 필요한 위의 예에서 Module_C에 예외를 throw하는 방법

관련 문제