1.创建实例化对象的第一个魔法方法
__ new __(cls[,…])
self就是这个方法放回的, __ init __是用来个性化定义类的属性的
用法有两种:
(1)在元类中定制类;
(2)对继承不可变得数据类型进行修改——重写new方法
class CapStr(str):
def __new__(cls,string):
string = string.upper()
return super().__new__(cls,string)
cs = CapStr("avc")
cs
'AVC'
这里的不可变数据能被修改的原因:我们在实例对象被创建的时候拦截,接着使用super()改变了数据。
2. 对象即将被销毁的时候的魔法方法
__ del __
当对象不存在引用的时候,才会触发__ del __的魔法方法
3.对象的重生
(1)全局变量
(2)函数闭包