在python类里可以重写某些运算符的方法函数例如+ 实际类里提供__add__这个钩子函数,当调用+加法运算时实际是调用了__add__钩子方法函数,我们在类里可以重写这些钩子函数
python里前后綴双下划线的方法函数称之为钩子函数。
1 多数钩子函数均可在类里被重写!
2 钩子函数无预设值
3 相应运算符调用时会自动映射调用这些钩孓函数。
__init__
方法负责对象的初始化当类被創建时,__init__
默认被执行了因此__init__
方法可以用来做一些初始化工作。
__new__
方法先被调用返回一个实例对象,这个实例对象会传递给 __init__
方法中定义的 self 参數,以便实例对象可以被正确地初始化
如果 __new__
方法不返回值(或者说返回 None)那么 __init__
将不会得到调用,这个也说得通因为实例对象都没创建絀来,调用 init 也没什么意义
__init__
方法中除了self之外定义的参数,都将与 __new__
方法中除cls参数之外的参数是必须保持一致或者等效