__file__
,__main__
等在哪里定义,他们正式称之为什么? __eq__
和__ge__
是“神奇的方法”,所以现在我只是将它们称为“魔术常数”,但我甚至不知道这是否正确。
谷歌搜索确实没有发现任何东西,甚至Python自己的文档在扫描页面层之后似乎没有全面的列表。
答案 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__
语句。
其余大多数(__file__
,__eq__
等)都由导入系统添加到模块中,因此列在the import documentation中。
还有很多与物体有关的物品。 the data model documentation中列出了实现内置行为的基本方法(如{m}提及的__ge__
和__cause__
)。但是存在许多其他更具体的名称;例如,有几个与the exceptions documentation中的__traceback__
和__*__
等异常相关。
请注意,没有什么特别的"魔法"关于大多数这些,它们只是常规属性,可以根据需要分配。但是,它们被认为是内部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获得了半官方身份,但就此而言。
其他一些人已经沿着这条路走了这条道路: