que len hace dunder data __dict__ python class magic-methods

hace - ¿Dónde está la documentación de Python para los métodos especiales?(__init__,__new__,__len__,…)



python set() function (9)

¿Dónde está una lista completa de los métodos especiales de subrayado doble / dunder que se pueden usar en las clases? (por ejemplo, __init__ , __new__ , __len__ , __add__ )




Familiarízate con la función dir.


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

$ pydoc SPECIALMETHODS


Los métodos de subrayado doble ("dunder") de Python también se conocen como métodos de modelo de datos porque están en el núcleo del modelo de datos de Python, y proporcionan un protocolo para personalizar (sobrecargar) los métodos integrados. Esta es la razón por la que se enumeran en la sección "Modelo de datos" de la documentación de Python.


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



Si, como yo, quieres una lista simple y sin adornos, aquí está. Lo compilé en base al enlace de documentación de Python 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__