是否有一个全面的Python的“魔术常数”表?

时间:2016-07-13 07:08:29

标签: python python-3.x

__file____main__等在哪里定义,他们正式称之为什么? __eq____ge__是“神奇的方法”,所以现在我只是将它们称为“魔术常数”,但我甚至不知道这是否正确。

谷歌搜索确实没有发现任何东西,甚至Python自己的文档在扫描页面层之后似乎没有全面的列表。

1 个答案:

答案 0 :(得分:16)

简短回答:。对于更长时间失控的答案,继续阅读......

据我所知,没有那些__dunder_names__(也不是他们的官方头衔!)的综合表格。有几个来源:

  • 唯一真正的"魔术常量" __debug__:它是SyntaxError尝试分配此名称的__all__。它涵盖了in the list of constants并在the assert statement的背景下提及。

  • 声明特定使用的另一个模块级名称是print_function,与the import statement一起记录。

  • library reference中记录了两个特殊模块,它们有自己的页面:

    • __main__是执行脚本的顶级环境。

    • __future__用于访问尚未强制使用的语言功能(例如,print替换Python 2中的__name__语句。

      < / LI>
  • 其余大多数(__file____eq__等)都由导入系统添加到模块中,因此列在the import documentation中。

    < / LI>

还有很多与物体有关的物品。 the data model documentation中列出了实现内置行为的基本方法(如{m}提及的__ge____cause__)。但是存在许多其他更具体的名称;例如,有几个与the exceptions documentation中的__traceback____*__等异常相关。

请注意,没有什么特别的&#34;魔法&#34;关于大多数这些,它们只是常规属性,可以根据需要分配。但是,它们被认为是内部Python机器的保留,所以你不应该添加自己的;每the language reference on "reserved classes of identifiers"

  

任何使用__author__名称,在任何情况下,如果没有明确记录使用,都会在没有警告的情况下破损。

也就是说,有一些常用的东西,我认为在官方文档中实际指定 ,例如__version__super.onCreate(savedInstanceState);见例如What is the common header format of Python files?What is the origin of __author__?有些人通过PEP-8获得了半官方身份,但就此而言。

其他一些人已经沿着这条路走了这条道路: