foo.bar,则
__name__设置为
'foo.bar'。
名称是在
import.c模块中确定的,但是由于该模块处理各种不同类型的导入(包括zip导入,仅字节码的导入和扩展模块),因此有
多个 代码路径可用于查找。
通常,
import语句会转换为对的调用
__import__,默认情况下会实现为对的调用
Pyimport_importModuleLevelObject。请参阅
__import__()文档以了解参数的含义。在
Pyimport_importModuleLevelObject相对名称中已解析,因此您可以根据需要
name跟踪那里的变量。
该模块的其余部分通过
Pyimport_AddModuleObject创建实际的名称空间对象和设置
name键来处理实际的导入,但是您可以将该
name值追溯到
Pyimport_importModuleLevelObject。通过创建模块对象,可以
__name__在
moduleobject.c对象构造函数中设置其值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)