魔法属性和魔法方法
Python 中预先定义好了一些以 __xxx__ 形式的属性和方法。
这些属性和方法用来表示特定的意义和功能。
__doc__ 属性
⁃ 文档字符串,DocString 用来对模块,类,方法进行说明的字符串
⁃ 可以通过 help 方法在 获取帮助时自动调用
__module__ 、__class__ 、__bases__ 、__mro__ 属性
⁃ __module__ 属性用来获取当前成员属性哪个模块
⁃ __class__ 属性用获取当前对象属于哪个类
⁃ __bases__ 属性用来获取当前类的父类
⁃ __mro__ 属性用来记录父类的继承关系
__init__ 、__new__ 方法
⁃ __init__ 方法用来对类中成员进行初始化,创建对象时自动调用
⁃ __new__ 方法是在创建对象时向内存中申请空间的方法,在 init 方法执行之前自动调用执行
__call__ 方法
⁃ 类中的方法,实现该方法可以让对象以函数形式进行操作
⁃ 对象调用函数的这种形式称为仿函数
__getitem__ 、 __setitem__ 、__delitem__ 、__len__ 、__str__ 方法
⁃ 实现这几个 item 方法,可以让类对象在操作时,使用下标进行操作
⁃ 使用 len 函数时,会调用 __len__ 这个方法
⁃ __str__ 方法是 python 提供的一种让用户自定义对象显示形式的接口