Python中的魔术方法(Dunder or magic methods)

在Python中,有一类名字前后有双下划线做前缀和后缀的方法,例如:__ init __, __ add __, __ len __, __ repr __ 。这类方法叫做魔术方法Magic method,通常用于重载Python内建方法和运算(overload Python’s built-in methods and its operators)。更Pythonic的叫法是:Dunder method -- “Double Under (Underscores)”。

魔术方法会被Python框架自动调用而无需程序员手动调用。
魔术方法演示
  • __ init __()方法在对象创建时调用,给对象提供初始化值,只能return None,return其它值会报错
  • __ del __()在对象被销毁时调用
    __del__()方法
  • __ len __()方法返回对象的长度
    __len__()方法
  • __ repr __()方法用于在Python交互窗口(interactive terminal)中表达一个对象信息。
    __repr__()方法
  • __ getitem __()方法,允许类的实例使用索引运算符[],该魔术方法通常用于列表索引,字典查找,或访问的值范围。考虑到它的通用性,它可能是Python使用最多的魔术方法之一。
    __getitem__()方法

推荐阅读更多精彩内容