python中析构函数的作用,python请简述构造函数和析构函数的作用_python构造函数和析构函数...

一、构造函数

1、定义

构造函数__ init __称为class的构造函数与构造方法,一般作为实例化设置初始值而存在的。即一般是为了初始化对象时将必须要用到的属性、方法做一些定义,而存在。

2、作用

__ init __(self)这个是构造方法,实例化一个对象时,这个方法就会在对象创建时自动调用,实例化类就是创建对象,就会调用这个方法。

实例化对象是可以传入参数的,这些参数被传入init方法中,可通过重写方法来自定义对象初始化操作。

3、示例

定义一个Animal类,初始化name名称和color颜色的属性。对象实例化,并调用test方法后,再返回定义对象的属性。

class Animal():

#构造函数

def __init__(self,name,color):

print('构造函数运行')

self.name = name

self.color = color

def test(self):

print('自定义函数运行')

return self.name,self.color

animal = Animal('天鹅','白色')

print(animal.test())

结果:

构造函数运行

自定义函数运行

('天鹅', '白色')

二、析构函数

1、定义

析构函数(destructor)与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已经调用完毕),系统会自动执行析构函数,析构函数往往用来做清理善后的工作,比如说在建立对象时用new开辟了一片内存空间,delete会自动调用析构函数后释放内存。

2、作用

主要是销毁/删除临时的变量,主要对那些长期占用内存的临时变量进行销毁,其方法是del。

3、示例

析构函数---手动释放内存

class Animal():

def __init__(self,name,color):

print('构造函数运行')

self.name = name

self.color = color

def test(self):

print('自定义函数运行')

return self.name,self.color

def __del__(self):

#析构函数

print('释放内存资源')

animal_one = Animal('天鹅','白色')

del animal_one #手动释放资源

def run():

animal_two = Animal('天鹅', '白色')

print(animal_two.test())

run()

结果:

构造函数运行

释放内存资源

构造函数运行

自定义函数运行

('天鹅', '白色')

释放内存资源

手动释放资源可以利用del方法。

析构函数---系统自动释放内存

class Animal():

def __init__(self,name,color):

print('构造函数运行')

self.name = name

self.color = color

def test(self):

print('自定义函数运行')

return self.name,self.color

def __del__(self):

#析构函数

print('释放内存资源')

animal_one = Animal('天鹅','白色')

def run():

animal_two = Animal('天鹅', '白色')

print(animal_two.test())

run()

结果:

构造函数运行

构造函数运行

自定义函数运行

('天鹅', '白色')

释放内存资源

释放内存资源

这里需要注意自动释放资源与手动释放资源的区别。手动释放资源时,可以选择在哪一个环节释放变量资源,而在系统释放资源是在程序调用完成后,再释放资源,一般是在程序执行最后才进行资源释放。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值