前言
- 在 Python 3 中,类的内置属性和特殊方法(魔法方法)提供了非常丰富的功能和灵活性
- 同时,一些内置的装饰器、常用的装饰器也起到了很棒的效果
- 为了方便各位查阅, 笔者尽最大努力地归纳了 Python 3 中类的属性、特殊方法(魔法方法)和 一些装饰器
- 希望本文能够帮助到你
类
内置属性
常见
__name__
:类的名称(字符串)__doc__
:类的文档字符串(字符串)或None
(如果没有定义)__module__
:类定义所在的模块名称(字符串)__bases__
:类的所有基类构成的元组(对于内置类型,可能为空或包含object
)__dict__
:类的属性(包括方法)构成的字典。注意,对于内置类型,这个字典可能不包含有用的信息__class__
:在实例上使用时,指向实例的类;在类上使用时,通常返回type
或其元类__mro__
:类的方法解析顺序(MRO)列表,用于确定继承时方法调用的顺序
其他
-
__annotations__
:类的注解字典,用于存储变量注解和函数注解(Python 3.7+) -
__qualname__
:类的限定名(包括其包、模块和父类) -
__subclasshook__()
:一个类方法,用于自定义子类检查。当使用issubclass()
函数检查一个类是否是另一个类的子类时,如果第一个类定义了__subclasshook__()
方法,则会调用该方法
内置方法 (魔法方法)
构造和初始化
__new__(cls, [...])
:用于创建并返回类的实例的特殊静态方法,通常在__init__()
之前被调用__init__(self, [...])
:在实例创建后调用,用于初始化实例__del__(self)
:在实例被销毁前调用,用于执行清理操作__init_subclass__(cls, **kwargs)
: 当一个类被继承时调用,在子类的__init__
方法之前
运算符重载
__add__(self, other)
:定义加法运算符+
的行为__sub__(self, other)
:定义减法运算符-
的行为__mul__(self, other)
:定义乘法运算符*
的行为__truediv__(self, other)
:定义真除法运算符/
的行为__floordiv__(self, other)
:定义地板除法运算符//
的行为__mod__(self, other)
:定义取模运算符%
的行为__pow__(self, other[, modulo])
:定义乘方运算符**
或**=
的行为__iadd__(self, other)
:定义加法赋值运算符+=
的行为__isub__(self, other)
:定义减法赋值运算符-=