建设厅网站账号密码忘记怎么办,网站建设模板下载,亚马逊网址是多少,城乡建设部网站-#### 1、基本概念#xff08;构造函数与析构函数#xff09; 特殊函数#xff1a;由系统自动执行#xff0c;在程序中不可显式地调用他们 构造函数#xff1a; 建立对象时对对象的数据成员进行初始化#xff08;对象初始化#xff09; 析构函数#xff1a; 对象生命期…-#### 1、基本概念构造函数与析构函数 特殊函数由系统自动执行在程序中不可显式地调用他们 构造函数 建立对象时对对象的数据成员进行初始化对象初始化 析构函数 对象生命期结束时回收的对象回收/撤销对象
2、__del__析构方法的作用
**使用场景**一般定义在类内被称为析构方法 作用 销毁类的实例的时候调用以释放占用的资源其中可以放一些清理资源的代码又如释放连接等 举例
import time
class Person:def __init__(self,name,age18):self.name nameself._age agedef __del__(self):print(del析构方法进行对象销毁的清理工作)def atest():tom Person(tom)
atest()运行结果 以上结果可以看出在类调用结束后进行销毁时会自动调用__del__
2、与del方法的区别
我们先看个例子
class Person:def __init__(self,name,age18):self.name nameself._age agedef pa_a(self):print(f姓名:{self.name})# def __del__(self):# print(del析构方法进行对象销毁的清理工作)def atest():tom Person(tom)del tom tom2 tomprint(tom2.pa_a())atest()运行结果 从以上运行结果可以看出del tom执行后相当于tom在内存中的引用被删除了再将tom2指向tom的内存地址是无法找到引用的也就会报错。可以看出del是会删除引用计数的
再让我们来看看__del__:
import time
class Person:def __init__(self,name,age18):self.name nameself._age agedef __del__(self):print(del析构方法进行对象销毁的清理工作)def atest():tom Person(tom)tom.__del__()tom.__del__()tom.__del__()tom.__del__()print(start)tom2 tomtom3 tom2print(del1)del tomtime.sleep(3)print(del2)del tom2print(del3)del tom3time.sleep(3)print(end)atest()运行结果 结论 del: 会删除内存中的引用计数 _del_不会删除引用计数只是在对象销毁的时候自动调用