Python笔记(二十二)_魔法方法_基本魔法方法

__init__(self[,...])

__init__和__new__组成python的构造器,但__init__更多的是负责初始化操作,相当于一个项目中的配置文件,__new__才是真正的构造函数,创建并返回一个实例对象,如果__new__只调用了一次,就会得到一个对象

 

__new__(cls[,...])

当继承一个不可修改的类,但又想去修改的时候,需要重写__new__方法

>>>class Capstr(str):        #str是一个不可修改的类
  def __new__(cls,string):
    string = string.upper()
  return str.__new__(cls,string)  
>>>a = Capstr('i am Demi')
>>>a
'I AM DEMI'

 

 __del__(self)

是对象的析造器,并非所有del操作都会调用__del__(),只有对象生成后,所有对它的引用都被del之后,才会启动垃圾回收机制,才会调用__del__方法

>>>class C:
  def __init__(self):
    print('__init__方法正在被调用')
  def __del__(self):
    print('__del__方法正在被调用')
>>>c1=C()
  __init__方法正在被调用
>>>c2=c1
>>>del c2
>>>del c1
__del__方法正在被调用

你可能感兴趣的:(Python笔记(二十二)_魔法方法_基本魔法方法)