gpt4 book ai didi

python - 有没有Python的 "magic constants"的综合表?

转载 作者:太空狗 更新时间:2023-10-29 17:17:11 28 4
gpt4 key购买 nike

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

谷歌搜索真的没有找到任何东西,甚至 Python 自己的文档在浏览页面层之后似乎也没有完整的列表。

最佳答案

简短回答:。对于更长的答案,它已经严重失控,请继续阅读......


据我所知,没有关于这些 __dunder_names__ 的综合表格(也不是他们的官方名称!)。有几个来源:

  • 唯一真正的 “魔法常量”__debug__:尝试分配给这个名称是一个 SyntaxError。覆盖了in the list of constants并在 the assert statement 的上下文中提到.

  • 另一个由语句特定使用的模块级名称是 __all__,它与 the import statement 一起记录。 .

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

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

    • __future__用于访问尚未强制执行的语言功能(例如 print_function 以替换 Python 2 中的 print 语句)。

  • 其余大部分(__name____file__ 等)都由导入系统添加到模块中,因此列在the import documentation 中。 .

还有很多跟对象相关的。 the data model documentation 中列出了实现内置行为的基本方法(如 __eq____ge__,如您所述)。 .但是还有很多其他更具体的名称;例如,在 the exceptions documentation 中有几个专门与异常相关的,如 __cause____traceback__ .


请注意,其中大多数没有什么特别“神奇”的,它们只是常规属性,可以根据需要分配给它们。但是,它们被认为是为内部 Python 机制保留的,因此您不应该添加自己的;每the language reference on "reserved classes of identifiers" :

Any use of __*__ names, in any context, that does not follow explicitly documented use, is subject to breakage without warning.

就是说,有一些常用的用法我认为并没有在官方文档中任何地方具体说明,例如__author____version__;参见例如What is the common header format of Python files?What is the origin of __author__?少数人通过PEP-8具有半官方身份,仅此而已。


从表面上看,其他一些人已经走过了这条路:

关于python - 有没有Python的 "magic constants"的综合表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38344848/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com