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__
主に自分用まとめですが、興味のある方はご覧になってみてください。