有Python的“魔术常数”的完整表吗?

发布于 2021-01-29 15:13:47

在哪里__file____main__等定义,什么是他们正式叫什么名字?__eq__并且__ge__是“魔术方法”,所以现在我只是将它们称为“魔术常数”,但我什至不知道那是正确的。

Google搜索实际上并没有带来任何好处,甚至Python自己的文档在浏览页面各层之后似乎也没有完整的清单。

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

    简短的回答: 。对于较长的答案,这很不好用,请继续阅读…


    __dunder_names__据我所知,这些表没有完整的表(也没有它们的正式名称!)。有两个来源:

    • 唯一真正的 “魔术常数”__debug__SyntaxError尝试分配给该名称。它涉及常量的列表,并在上下文中提到assert声明

    • 语句特定使用的另一个模块级名称是__all__,该名称import语句旁边记录。

    • 库参考中记录了两个特殊模块,它们具有各自的页面:

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

      • __future__用于访问尚非必需的语言功能(例如print_function,替换printPython 2中的语句)。

    • 其余大多数(__name____file__等)由导入系统添加到模块中,因此在导入文档中列出。

    也有许多与对象有关的东西。对于基本方法实现内置行为(如__eq____ge__,你提到)中列出的数据模型文档。但是还有许多其他更具体的名称。例如,在异常文档中,有一些与异常相关的内容,例如__cause__和。__traceback__


    请注意,其中大多数都没有什么特别的“魔术”,它们只是常规属性,可以根据需要分配给它们。但是,它们被认为是为内部Python机器保留的,因此您不应该添加自己的机器。根据“标识符的保留类”上的语言参考

    任何 使用的__*__名称,在任何情况下,不遵循明确记载的使用,如有破损不会发出警告。

    就是说,我认为在官方文档中的 任何地方
    都没有实际指定一些常用的用法,例如__author____version__;参见例如Python文件的常见标头格式是什么?什么是__author__的由来?一些人通过PEP-8拥有半官方身份,仅此而已。


    通过它的外观,其他一些人踩了这条路:



知识点
面圈网VIP题库

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

去下载看看