prosource

모듈 내부의 모듈에 대한 참조를 얻는 방법은 무엇입니까?

probook 2023. 6. 27. 22:21
반응형

모듈 내부의 모듈에 대한 참조를 얻는 방법은 무엇입니까?

해당 모듈 내에서 모듈에 대한 참조를 얻으려면 어떻게 해야 합니까?또한 해당 모듈이 포함된 패키지에 대한 참조를 얻으려면 어떻게 해야 합니까?

import sys
current_module = sys.modules[__name__]

시스템 모듈을 가져오지 않는 또 다른 기술은 거의 틀림없이 - 취향에 따라 - 더 단순합니다.

current_module = __import__(__name__)

가져오기가 없다는 것을(를) 주의하십시오.Python은 각 모듈을 한 번만 가져옵니다.

해당 모듈에 클래스가 있는 경우,__module__클래스의 속성은 클래스의 모듈 이름입니다.따라서 다음을 통해 모듈에 액세스할 수 있습니다.sys.modules[klass.__module__]이것은 기능에도 적용됩니다.

다음을 사용하여 현재 모듈의 이름을 얻을 수 있습니다.__name__

모듈 참조는 다음에서 확인할 수 있습니다.sys.modules사전.

Python 설명서 참조

@truppo의 답변과 이 답변(및 PEP366)에 따르면:

"" 모듈에 대한 참조:

import sys
this_mod = sys.modules[__name__]

"" 패키지에 대한 참조:

import sys
this_pkg = sys.modules[__package__]

__package__그리고.__name__(위쪽)의 경우 동일함__init__.py

외부에서 전달할 수 있습니다.

mymod.init(mymod)

이상적이지는 않지만 현재 사용 사례에 적합합니다.

모듈 변수에 액세스하기만 하면 되는 경우 다음을 사용합니다.globals()['bzz'](또는)vars()['bzz']모듈 레벨인 경우).

from importlib import import_module
current_module = import_module(__name__)

PS: Sargera의 의견도 참조하십시오.

언급URL : https://stackoverflow.com/questions/1676835/how-to-get-a-reference-to-a-module-inside-the-module-itself

반응형