setup python metadata convention

python - setup - ¿Encontrar una lista de todas las variables de subrayado doble?



python install setup py (2)

La lista completa utilizada por Python se encuentra en la sección de referencia del lenguaje Python 3, "Modelo de datos" . Todos los demás no son estándar o son utilizados por módulos de terceros y se documentan por separado.

Relacionado: ¿Cuál es el formato de encabezado común de los archivos de Python?

¿Dónde puedo encontrar una lista de todas las variables / palabras clave con subrayado doble que se usan comúnmente en Python?

En Python, las variables que comienzan y terminan con guiones bajos suelen ser para almacenar metadatos o están incorporadas al sistema. Por ejemplo,

#!/usr/bin/env python __author__ = ''Michael0x2a'' __license__ = ''GPL'' class Test(object): def __init__(self): print ''Hello World!'' if __name__ == ''__main__'': t = Test()

Estoy bastante seguro de que __author__ y __license__ son bastante conocidos. ¿Qué otras variables de metadatos de subrayado doble hay? ¿Hay una lista completa que pueda consultar en algún lugar? ¿Puedo crear mi propia cuenta, o hay un montón de normas que se han convertido en normas de facto que debería usar?

Cosas como __init__ , __name__ y __doc__ están integradas en Python. ¿Son esas las únicas dos palabras clave reservadas con doble guión bajo? ¿Hay más? ¿Hay algún lugar donde pueda obtener una lista?

[Editar]
Estaba navegando y encontré otra question que se vinculaba a un mindmap de un montón de variables de subrayado doble.


Si desea ver nombres mágicos ya sea que estén documentados o no, vaya al directorio Lib y ejecute:

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

Eso produce:

''__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__''