下午,内置方法(双下方法,魔性方法)

内置方法,双下方法,魔性方法
__str__和__repr__
必须返回一个str的数据类型
%s ,str() 都是和__str__ 息息相关的
%r , repr() 都是和 __repr__ 息息相关的
      当__str__方法不存在时,__repr__是完全可以替代__str__
      但是__str__不能替代__repr__
 
__del__ 析构方法
      回收机制,回收变量时会自动触发__del__
__init__ 初始化方法,构造方法
      实例化对象自动触发的方法
 
python里面垃圾回收机制是怎么样?(面试常问)
   引用记数为主(引用为0时,会被定时清除),分代回收,标记清除为辅
 
__new__,__init__的区别????
   __new__ 产生对象之前有的方法 ====创建对象
  __init__方法是 产生实例之后触发的 === 初始化对象
  __new__在__init__之前执行
详解:
   __new__所接收的第一个参数是cls,而__init__所接收的第一个参数是self。这是因为当我们调用__new__的时候,该类的实例还并不存在(也就是self所引用的对象还不存在),所以需要接收一个类作为参数,从而产生一个实例。而当我们调用__init__的时候,实例已经存在,因此__init__接受self作为第一个参数并对该实例进行必要的初始化操作。这也意味着__init__是在__new__之后被调用的。
 
 

猜你喜欢

转载自www.cnblogs.com/computer123/p/12008945.html