特殊方法的Python文档在哪里? (__init __,__ new__,__ len _,...)

时间:2009-09-13 21:02:02

标签: python class oop documentation magic-methods

哪些是可以在课程中使用的特殊双下划线/ dunder方法的完整列表? (例如,__init____new____len____add__

9 个答案:

答案 0 :(得分:51)

请查看Python语言参考中的special method names section

答案 1 :(得分:10)

Dive Into Python为他们提供了an excellent appendix

答案 2 :(得分:7)

答案 3 :(得分:7)

如果像我一样,你想要一个简单明了的清单,就在这里。我根据接受的答案中的Python documentation link编译了它。

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

答案 4 :(得分:4)

答案 5 :(得分:3)

对于那些对Python比较陌生的人来说,文档通常不够用(像我一样):有人写了一篇nice introduction,里面有很多关于特殊(魔术)方法如何工作的例子,如何使用它们等。

答案 6 :(得分:3)

如果您更喜欢从CLI而不是浏览器阅读文档,请执行此操作。

$ pydoc SPECIALMETHODS

答案 7 :(得分:0)

熟悉dir功能。

答案 8 :(得分:0)

Python的双下划线(“dunder”)方法也称为 datamodel 方法,因为它们是Python数据模型的核心,提供了一种用于自定义(重载)内置方法的协议。 这就是它们列在Python文档的"Data Model"部分中的原因。