获取模块完全限定名称的最简单方法
Simplest way to get fully qualified name of a module
如何在模块级别获得 Python 中 模块 的完全限定名称?
例如,假设这是文件结构:
foo
├── setup.py
└── bar
└── baz
└── spam.py
如何从模块级别的 spam.py
文件中获取完全限定的模块名称 "bar.baz.spam"
?
有__file__
,可以和inspect.getmodulename(__file__)
配对得到模块名"spam"
。但是,我怎样才能把它变成 "bar.baz.spam"
?
尝试这样的事情:
from bar.baz import spam
print(spam.__name__)
如果导入的名称不是模块,可以这样获取模块名称和对象名称:
from bar.baz.spam import MyClass
print(MyClass.__module__, MyClass.__name__)
如何在模块级别获得 Python 中 模块 的完全限定名称?
例如,假设这是文件结构:
foo
├── setup.py
└── bar
└── baz
└── spam.py
如何从模块级别的 spam.py
文件中获取完全限定的模块名称 "bar.baz.spam"
?
有__file__
,可以和inspect.getmodulename(__file__)
配对得到模块名"spam"
。但是,我怎样才能把它变成 "bar.baz.spam"
?
尝试这样的事情:
from bar.baz import spam
print(spam.__name__)
如果导入的名称不是模块,可以这样获取模块名称和对象名称:
from bar.baz.spam import MyClass
print(MyClass.__module__, MyClass.__name__)