找到所有双下划线变量的列表?

2024-05-21 17:29:56 发布

您现在位置:Python中文网/ 问答频道 /正文

相关:What is the common header format of Python files?

在哪里可以找到Python中常用的所有双下划线变量/关键字的列表?

在Python中,以双下划线开头和结尾的变量通常用于存储元数据或内置到系统中。例如

#!/usr/bin/env python

__author__ = 'Michael0x2a'
__license__ = 'GPL'

class Test(object):
    def __init__(self):
        print 'Hello World!'

if __name__ == '__main__':
    t = Test()

我非常肯定__author____license__是非常有名的。还有其他哪些双下划线元数据变量?有没有一个全面的清单可以让我查一下?我能自己编一套吗,还是有一堆已经成为事实上的标准,我应该使用?

__init____name____doc__这样的东西基本上都内置在Python中。这是唯一两个保留的双下划线关键字吗?还有吗?有什么地方可以给我一张单子吗?

[编辑]
我在浏览时遇到另一个链接到一堆双下划线变量的mindmapquestion


Tags: ofthe数据nametestformatinitis
3条回答

当我使用

dir(object)

我有这些:


'__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__has
h__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__'
, '__setattr__', '__sizeof__', '__str__', '__subclasshook__'

我认为它们是python中每个对象都有的dunder名称

如果要查看是否有文档记录的魔法名称,请转到Lib目录并运行:

egrep -oh '__[A-Za-z_][A-Za-z_0-9]*__' *.py | sort | uniq

产生:

'__all__'
'__args__'
'__author__'
'__bases__'
'__builtin__'
'__builtins__'
'__cached__'
'__call__'
'__class__'
'__copy__'
'__credits__'
'__date__'
'__decimal_context__'
'__deepcopy__'
'__dict__'
'__doc__'
'__exception__'
'__file__'
'__flags__'
'__ge__'
'__getinitargs__'
'__getstate__'
'__gt__'
'__import__'
'__importer__'
'__init__'
'__ispkg__'
'__iter__'
'__le__'
'__len__'
'__loader__'
'__lt__'
'__main__'
'__module__'
'__mro__'
'__name__'
'__package__'
'__path__'
'__pkgdir__'
'__return__'
'__safe_for_unpickling__'
'__setstate__'
'__slots__'
'__temp__'
'__test__'
'__version__'

Python使用的完整列表在Python Language Reference section 3, "Data model"中给出。每一个都是非标准的,或由第三方模块使用,并单独记录。

相关问题 更多 >