Python のダンダーな名前まとめ

Python には、 __all____dict____init__() のように、名前の先頭と末尾が __ (アンダースコア 2 つ)になっていて特殊な意味を持つメソッドやアトリビュートがあります。 それらは Python 界隈では「ダンダー XXX 」 1 や「特殊 XXX 」 2 「マジック XXX 」 3 などと呼ばれています。

それらのダンダーな名前についてまとめを作ってみました。

確認時の Python の最新バージョンは 3.9 です。

作成時点では以下の名前に言及しています(今回はじめてその存在を知ったものもたくさんありました。事前に知っていたよりも数が多くて途中で挫折しそうになりました……)。

  • __abs__()
  • __add__()
  • __aenter__()
  • __aexit()
  • __aiter__()
  • __all__
  • __and__()
  • __anext__()
  • __annotations__
  • __await__()
  • __bases__
  • __bool__()
  • __bytes__()
  • __cached__
  • __call__()
  • __ceil__()
  • __class__
  • __class_getitem__()
  • __closure__
  • __code__
  • __complex__()
  • __contains__()
  • __debug__
  • __defaults__
  • __del__()
  • __delattr__()
  • __delete__()
  • __delitem__()
  • __dict__
  • __dir__()
  • __divmod__()
  • __doc__
  • __enter__()
  • __eq__()
  • __exit__()
  • __file__
  • __float__()
  • __floor__()
  • __floordiv__()
  • __format__()
  • __future__
  • __ge__()
  • __get__()
  • __getattr__()
  • __getattribute__()
  • __getitem__()
  • __getnewargs__()
  • __getnewargs_ex__()
  • __getstate__()
  • __globals__
  • __gt__()
  • __hash__()
  • __iadd__()
  • __iand__()
  • __ifloordiv__()
  • __ilshift__()
  • __imatmul__()
  • __imod__()
  • __import__()
  • __imul__()
  • __index__()
  • __init__()
  • __init__.py
  • __init_subclass__()
  • __instancecheck__()
  • __int__()
  • __invert__()
  • __ior__()
  • __ipow__()
  • __irshift__()
  • __isub__()
  • __iter__()
  • __itruediv__()
  • __ixor__()
  • __kwdefaults__
  • __le__()
  • __len__()
  • __length_hint__()
  • __loader__
  • __lshift__()
  • __lt__()
  • __main__.py
  • __matmul__()
  • __missing__()
  • __mod__()
  • __module__
  • __mro__
  • __mro_entries__()
  • __mul__()
  • __name__
  • __ne__()
  • __neg__()
  • __new__()
  • __next__()
  • __or__()
  • __package__
  • __path__
  • __pos__()
  • __pow__()
  • __pycache__
  • __qualname__
  • __radd__()
  • __rand__()
  • __rdivmod__()
  • __reduce__()
  • __reduce_ex__()
  • __repr__()
  • __reversed__()
  • __rfloordiv__()
  • __rlshift__()
  • __rmatmul__()
  • __rmod__()
  • __rmul__()
  • __ror__()
  • __round__()
  • __rpow__()
  • __rrshift__()
  • __rshift__()
  • __rsub__()
  • __rtruediv__()
  • __rxor__()
  • __self__
  • __set__()
  • __set_name__()
  • __setattr__()
  • __setitem__()
  • __setstate__()
  • __sizeof__
  • __slots__
  • __spec__
  • __str__()
  • __sub__()
  • __subclasscheck__()
  • __subclasses__()
  • __subclasshook__()
  • __truediv__()
  • __trunc__()
  • __weakref__
  • __xor__()
  • sys.__breakpointhook__
  • sys.__displayhook__
  • sys.__excepthook__
  • sys.__interactivehook__
  • sys.__stderr__
  • sys.__stdin__
  • sys.__stdout__
  • sys.__unraisablehook__

主に自分用まとめですが、興味のある方はご覧になってみてください。


  1. ダンダー( dunder )メソッド。 dunder は double underscore を省略した造語。
  2. 特殊メソッド( special method )。
  3. マジックメソッド( magic method )。