魔方方法之--类的构造(__init__,__new__)和析构(__del__)方法

Posted 栀子花开~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了魔方方法之--类的构造(__init__,__new__)和析构(__del__)方法相关的知识,希望对你有一定的参考价值。

  1. 构造方法(参见小甲鱼入门教程)

    __ init__()方法:类的初始化方法,初始化类对象时被调用,需要的时候再调用它

  注意点:这个方法的返回值必须None

技术分享图片
 class Rectangle():
       def __init__(self,width,height):
           self.width =width
           self.height=height  
View Code

 

 __ new __ ()方法:实际调调用在__ init __()之前.实例化对象时第一个被调用的方法.在新创建一个对象时调用,一般不会重写它,继承自不可变类型,才显示它的作用

技术分享图片
   class CapStr(str):
       def __new__(cls,string):
           string=str.upper(string)
           return str.__new__(cls,string)
   a=CapStr(I will be transfer)
   print(a) #结果 I WILL BE TRANSFER
View Code
  1. 析构方法

  ? __ del __ ()方法是垃圾回收机制回收对象时调用,对象被删除不一定会调用这个方法.对象地址里面的内容被删为空才会调用这个方法.

技术分享图片
  

def __del__(self):
    print(__del__方法被调用了)        
b,c=a,a
c=a
print(del a)
del a
print(del b)
del b
print(del c)
del c #__del__方法被调用了
View Code

 

 

以上是关于魔方方法之--类的构造(__init__,__new__)和析构(__del__)方法的主要内容,如果未能解决你的问题,请参考以下文章

Python 之 __new__() 方法与实例化(转)

类的内置方法(魔法方法)

python_魔法方法:构造和析构

整理类的调用方式和构造方法

类的初始化__init__使用

面向对象--特殊成员