Python中“ __package__”属性的用途是什么?

发布于 2021-01-29 18:13:11

我只想知道 到底__package__什么 意思 ?甚至在SO上也没有在官方文档中找到任何解释。

如果您能提供一些例子,我将非常高兴。

关注者
0
被浏览
215
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    请参阅PEP
    366
    导入系统参考文档

    提议的主要更改是引入了新的模块级别属性__package__。如果存在,则相对导入将基于此属性而非模块__name__属性。

    * __package__应该设置模块的属性。它的值必须是字符串,但可以与其值相同__name__。如果该属性设置为None或丢失,则导入系统将使用更合适的值填充该属性。当模块是软件包时,其__package__值应设置为__name__。如果模块不是软件包,__package__则对于顶级模块或子模块,应将其设置为空字符串,并将其设置为父软件包的名称。有关更多详细信息,请参见PEP
    366


    因此,对于位于中的模块foo/bar/baz.py__name__将设置为foo.bar.baz,并将__package__其设置为foo.bar,而同时对和属性foo/bar/__init__.py都具有。foo.bar``__name__``__package__



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看