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

35 投票
2 回答
24446 浏览
提问于 2025-04-17 10:34

相关内容: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内置的。那这些就是唯一的保留的双下划线变量吗?还有其他的吗?有没有地方可以找到一个列表?

[编辑]
我在浏览的时候遇到了另一个问题,里面链接了一个思维导图,上面有很多双下划线变量。

2 个回答

15

Python使用的完整列表可以在Python语言参考的第3部分“数据模型”中找到。其他的列表要么不是标准的,要么是第三方模块使用的,这些会单独有文档说明。

42

如果你想查看一些神奇的名字,不管有没有文档说明,去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__'

撰写回答