还有很多与对象相关的,实现内置行为的基本方法(如__eq__和__ge__,正如你提到的)在the data model documentation中列出,但是还有很多其他的,更具体的名称存在;例如,在the exceptions documentation中,有几个与异常具体相关,如__cause__和__traceback__。 请注意,这些属性中的大多数都没有什么特别"神奇"的地方,它们只是常规属性,可以根据需要进行赋值,但是,它们被认为是为Python内部机制保留的,所以不应该添加自己的属性;根据"保留标识符类别"的语言参考:
1条答案
按热度按时间tkclm6bt1#
简短回答:* * 不**。对于更长的答案,这已经严重失控了,请继续阅读...
据我所知,没有关于这些
__dunder_names__
的完整表格(也不是它们的官方名称!)。__debug__
:它是一个SyntaxError
,它包含在常量列表中,并且在assert
语句的上下文中提到。__all__
,它与import
语句一起记录。__main__
是执行脚本的顶级环境。__future__
用于访问尚未强制的语言特性(例如,print_function
用于替换Python 2中的print
语句)。__name__
、__file__
等)由导入系统添加到模块中,因此在导入文档中列出。还有很多与对象相关的,实现内置行为的基本方法(如
__eq__
和__ge__
,正如你提到的)在the data model documentation中列出,但是还有很多其他的,更具体的名称存在;例如,在the exceptions documentation中,有几个与异常具体相关,如__cause__
和__traceback__
。请注意,这些属性中的大多数都没有什么特别"神奇"的地方,它们只是常规属性,可以根据需要进行赋值,但是,它们被认为是为Python内部机制保留的,所以不应该添加自己的属性;根据"保留标识符类别"的语言参考:
__*__
名称,如果没有遵循明确记录的使用,都可能在没有警告的情况下被破坏。也就是说,有几个常用的,我不认为实际上是指定 * 任何地方 * 在官方文档,如
__author__
和__version__
;参见例如What is the common header format of Python files?和What is the origin of author?少数通过PEP-8具有半官方状态,但仅此而已。从表面上看,还有几个人走过这条路: