获取模块完全限定名称的最简单方法

问题描述

如何在模块级别获得 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__)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...