魔术方法就算定义在类里面的一些特殊的方法
特点:这些func的名字前面都有两个下划线
__new__方法
相当于一个类的创建一个对象的过程
__init__方法
相当于为这个类创建好的对象分配地址初始化的过程
__del__方法
一个类声明这个方法后,创建的对象如果被多次引用,只有当引用为0的时候
才会执行__del__方法
_eq_
两个变量通过 == 比较的时候触发的方法
_ne_
两个变量通过 != 比较的时候触发的方法
__getattr__方法
一个类的对象点一个属性,这个属性不存在的时候执行的func
__getattribute__方法
注意和__getattr__方法的区分,getattr是当那个属性不存在的时候回去调用,而getattribute是只要尝试去读取属性都会调用
__setattr__方法
为对象设置属性值时会触发的func,以下这个代码可以实现两个不同的对象共享属性
__delattr__方法
当尝试删除一个对象的属性的时候,会触发此方法