我知道the standard example:如果直接执行模块,那么它就是__name__
全局变量定义为"__main__"
。然而,在文档中,我找不到在一般情况下如何定义__name__
的精确描述。module documentation说。。。
Within a module, the module's name (as a string) is available as the value of the global variable
__name__
.
……但“模块名称”是什么意思?它只是模块的名称(删除了.py
的文件名),还是也包括完全限定的包名称?
如何确定Python模块中__name__
变量的值?为了获得额外的好处,请精确地指出在Python源代码中执行此操作的位置。
它设置为导入时模块的绝对名称。如果导入为
foo.bar
,则__name__
设置为'foo.bar'
。名称是在^{} 模块中确定的,但由于该模块处理各种不同类型的导入(包括zip导入、仅字节码导入和扩展模块),因此有几个代码路径可跟踪。
通常,} 。请参阅^{} documentation 了解参数的含义。在^{} 中,将解析相对名称,因此如果需要,可以在那里向下搜索
import
语句被转换为对__import__
的调用,默认情况下是implemented as a call to ^{name
变量。模块的其余部分处理实际的导入,使用} object constructor 中设置。
PyImport_AddModuleObject
创建实际的命名空间对象并设置name
键,但是可以将该name
值跟踪回PyImport_ImportModuleLevelObject
。通过创建模块对象,它的__name__
值在^{变量
__name__
是模块的一个属性,可以通过名称访问。示例自建模块,用于检查导入机制:
来自类型模块的行:
相关问题 更多 >
编程相关推荐