모듈 내부의 모듈에 대한 참조를 얻는 방법은 무엇입니까?
해당 모듈 내에서 모듈에 대한 참조를 얻으려면 어떻게 해야 합니까?또한 해당 모듈이 포함된 패키지에 대한 참조를 얻으려면 어떻게 해야 합니까?
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
'prosource' 카테고리의 다른 글
람다를 사용할 때, Proc.new를 사용할 때? (0) | 2023.06.27 |
---|---|
매트-소트-헤더를 사용하여 날짜 문자열별로 정렬하는 방법은 무엇입니까? (0) | 2023.06.27 |
Android에서 배경을 20% 투명하게 만드는 방법 (0) | 2023.06.27 |
오류: 1067(42000):'created_at'에 대한 기본값이 잘못되었습니다. (0) | 2023.06.27 |
각도: 매트 양식 필드에는 매트 양식 필드 컨트롤이 포함되어야 합니다. (0) | 2023.06.22 |