2009-09-13 9 views
23

¿Dónde hay una lista completa de los métodos especiales de doble subrayado/dunder que se pueden usar en las clases? (Por ejemplo, __init__, __new__, __len__, __add__)¿Dónde está la documentación de Python para los métodos especiales? (__init__, __new__, __len__, ...)

+3

¿Dónde no puede encontrar la documentación de Python? –

+0

@ Mk12: las etiquetas tienen que ver con preguntas que no se refieren a los encuestados. Por favor, deje de revertir – SilentGhost

+4

@ S.Lott Quizás OP simplemente no pudo encontrar la sección correspondiente? Si no tiene algo constructivo para agregar ... –

Respuesta

0

Familiarícese con la función dir.

+0

pero eso solo haría lo que yo quisiera si una clase aprobada le implementara todos los métodos especiales. – mk12

2

Para alguien relativamente nuevo en Python, y para quien la documentación a menudo no es lo suficientemente accesible (como yo): alguien escribió nice introduction con muchos ejemplos sobre cómo funcionan los métodos especiales (mágicos), cómo usarlos ellos, etc.

4

Si, como yo, quieres una lista simple, sin adornos, aquí está. Lo compilé en base al Python documentation link de la respuesta aceptada.

__abs__ 
__add__ 
__and__ 
__call__ 
__class__ 
__cmp__ 
__coerce__ 
__complex__ 
__contains__ 
__del__ 
__delattr__ 
__delete__ 
__delitem__ 
__delslice__ 
__dict__ 
__div__ 
__divmod__ 
__eq__ 
__float__ 
__floordiv__ 
__ge__ 
__get__ 
__getattr__ 
__getattribute__ 
__getitem__ 
__getslice__ 
__gt__ 
__hash__ 
__hex__ 
__iadd__ 
__iand__ 
__idiv__ 
__ifloordiv__ 
__ilshift__ 
__imod__ 
__imul__ 
__index__ 
__init__ 
__instancecheck__ 
__int__ 
__invert__ 
__ior__ 
__ipow__ 
__irshift__ 
__isub__ 
__iter__ 
__itruediv__ 
__ixor__ 
__le__ 
__len__ 
__long__ 
__lshift__ 
__lt__ 
__metaclass__ 
__mod__ 
__mro__ 
__mul__ 
__ne__ 
__neg__ 
__new__ 
__nonzero__ 
__oct__ 
__or__ 
__pos__ 
__pow__ 
__radd__ 
__rand__ 
__rcmp__ 
__rdiv__ 
__rdivmod__ 
__repr__ 
__reversed__ 
__rfloordiv__ 
__rlshift__ 
__rmod__ 
__rmul__ 
__ror__ 
__rpow__ 
__rrshift__ 
__rshift__ 
__rsub__ 
__rtruediv__ 
__rxor__ 
__set__ 
__setattr__ 
__setitem__ 
__setslice__ 
__slots__ 
__str__ 
__sub__ 
__subclasscheck__ 
__truediv__ 
__unicode__ 
__weakref__ 
__xor__ 
1

Haga esto si prefiere leer la documentación de un CLI en lugar del navegador.

$ pydoc SPECIALMETHODS

0

doble subrayado de Python ("dunder") métodos son también conocidos como modelo de datos métodos porque están en el núcleo del modelo de datos de Python, proporcionando un protocolo para la personalización (sobrecarga) métodos incorporados. Esta es la razón por la que se enumeran en la sección "Data Model" de la documentación de Python.

Cuestiones relacionadas