Python类有大量的特殊方法,其中比较常见的是构造函数和析构函数,除此之外,Python还支持大量的特殊方法,运算符重载就是通过重写特殊方法实现的。
Python中类的构造函数是__init__(),一般用来为数据成员设置初值或进行其他必要的初始化工作,在创建对象时被自动调用和执行。如果用户没有设计构造函数,Python将提供一个默认的构造函数用来进行必要的初始化工作。
Python中类的析构函数是__del__(),一般用来释放对象占用的资源,在Python删除对象和收回对象空间时被自动调用和执行。如果用户没有编写析构函数,Python将提供一个默认的析构函数进行必要的清理工作。
方法 功能说明
new() 类的静态方法,用于确定是否要创建对象
init() 构造方法,创建对象时自动调用
del() 析构方法,释放对象时自动调用
add() +
sub() -
mul() *
truediv() /
floordiv() //
mod() %
pow() **
eq()、 ne()、lt()、 le()、gt()、 ge() ==、 !=、<、 <=、>、 >=
lshift()、rshift() <<、>>
and()、or()、invert()、xor() &、|、~、^
方法 功能说明
iadd()、isub() +=、-=,很多其他运算符也有与之对应的复合赋值运算符
pos() 一元运算符+,正号
neg() 一元运算符-,负号
contains () 与成员测试运算符in对应
radd()、rsub 反射加法、反射减法,一般与普通加法和减法具有相同的功能,但操作数的位置或顺序相反,很多其他运算符也有与之对应的反射运算符
abs() 与内置函数abs()对应
bool() 与内置函数bool()对应,要求该方法必须返回True或False
bytes() 与内置函数bytes()对应
complex() 与内置函数complex()对应,要求该方法必须返回复数
dir() 与内置函数dir()对应
divmod() 与内置函数divmod()对应
float() 与内置函数float()对应,要求该该方法必须返回实数
hash() 与内置函数hash()对应
int() 与内置函数int()对应,要求该方法必须返回整数
方法 功能说明
len() 与内置函数len()对应
next() 与内置函数next()对应
reduce() 提供对reduce()函数的支持
reversed() 与内置函数reversed()对应
round() 对内置函数round()对应
str() 与内置函数str()对应,要求该方法必须返回str类型的数据
repr() 打印、转换,要求该方法必须返回str类型的数据
getitem() 按照索引获取值
setitem() 按照索引赋值
delattr() 删除对象的指定属性
getattr() 获取对象指定属性的值,对应成员访问运算符“.”
方法 功能说明
getattribute() 获取对象指定属性的值,如果同时定义了该方法与__getattr__(),那么__getattr__()将不会被调用,除非在__getattribute__()中显式调用__getattr__()或者抛出AttributeError异常
setattr() 设置对象指定属性的值
base 该类的基类
class 返回对象所属的类
dict 对象所包含的属性与值的字典
subclasses() 返回该类的所有子类
call() 包含该特殊方法的类的实例可以像函数一样调用
get() 定义了这三个特殊方法中任何一个的类称作描述符(descriptor),描述符对象一般作为其他类的属性来使用,这三个方法分别在获取属性、修改属性值或删除属性时被调用
set()
delete()