2009-09-13 40 views
23

可以在類中使用的特殊雙下劃線/ dunder方法的完整列表在哪裏? (例如,__init____new____len____add__特殊方法的Python文檔在哪裏? (__init__,__new__,__len__,...)

+3

您無法找到Python文檔的位置? – 2009-09-13 23:16:04

+0

@ Mk12:標籤與問題無關。請停止回覆 – SilentGhost 2009-09-14 18:16:22

+4

@ S.Lott也許OP根本找不到相關章節?如果你沒有建設性的東西來添加... – 2012-01-23 02:15:03

回答

0

熟悉Dir函數。

+0

但那隻會做我想要的,如果一個類傳遞給它實現所有的特殊方法。 – mk12 2009-09-13 22:55:04

2

對於一個相對較新的Python人來說,文檔通常不夠用(像我一樣):有人寫了一個nice introduction,裏面有很多關於如何使用特殊(魔術)方法的例子,如何使用他們等

4

如果像我一樣,你想要一個簡單的,樸實無華的列表,在這裏。我根據接受的答案編譯了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__ 
1

如果您喜歡從CLI而不是瀏覽器閱讀文檔,請執行此操作。

$ pydoc SPECIALMETHODS

0

Python的雙下劃線(「dunder」)的方法也被稱爲數據模型方法,因爲它們是在Python的數據模型的核心,提供用於定製(重載)內置方法的協議。 這就是它們在Python文檔的"Data Model"部分列出的原因。

相關問題