Python中“ __package__”属性的用途是什么?
我只想知道 是 ?甚至在SO上也没有在官方文档中找到任何解释。
如果您能提供一些例子,我将非常高兴。
回答:
请参阅PEP
366和导入系统参考文档:
提议的主要更改是引入了新的模块级别属性
__package__
。如果存在,则相对导入将基于此属性而非模块__name__
属性。
和
*
__package__
应该设置模块的属性。它的值必须是字符串,但可以与其值相同__name__
。如果该属性设置为None
或丢失,则导入系统将使用更合适的值填充该属性。当模块是软件包时,其__package__
值应设置为__name__
。如果模块不是软件包,__package__
则对于顶级模块或子模块,应将其设置为空字符串,并将其设置为父软件包的名称。有关更多详细信息,请参见PEP366。
因此,对于位于中的模块foo/bar/baz.py
,__name__
将设置为foo.bar.baz
,并将__package__
其设置为foo.bar
,而同时对和属性foo/bar/__init__.py
都具有。foo.bar``__name__``__package__
以上是 Python中“ __package__”属性的用途是什么? 的全部内容, 来源链接: utcz.com/qa/417255.html