概述
实例化但从来没有调用他,就浪费了,就应该自动删除它 这个实例一直存在内存里
python有个垃圾自动回收机制 , 每段时间会自动刷新整个内存,把内存垃圾东西删除
析构函数: 在实例释放、销毁的时候自动执行的,通常用于做一些收尾工作,
如关闭一些数据库连接,关闭打开的临时文件
class role(): # 传参数 def __init__(self,name,role,weapon,life_value=100,moneny=15000): # 构造函数 # 实例化过程中做一些类的初始化工作 # 成员属性 self.name = name self.role = role self.weapon = weapon self.life_value = life_value self.moneny = moneny def shot(self): # 类的方法,功能(动态属性) print("shotting") def got_shot(self): print("on,%s got shoot..." % self.name) def buy_gun(self,gun_name): print("%s just bought %s" %(self.name,gun_name)) self.weapon = gun_name ''' 析构函数: 在实例释放、销毁的时候自动执行的,通常用于做一些收尾工作, 如关闭一些数据库连接,关闭打开的临时文件 ''' def __del__(self): print("del....") b1 = role('mike','警察','AK47') # 实例化但从来没有调用他,就浪费了,就应该自动删除它 # 这个实例一直存在内存里 # python有个垃圾自动回收机制 , 每段时间会自动刷新整个内存,把内存垃圾东西删除 b1.shot() # 删除变量 del b1 import time time.sleep(2) b1.shot() ''' shotting del.... 删除了变量了 Traceback (most recent call last): File "C:/Users/Administrator/PycharmProjects/ss/SSS/day6/析构方法.py", line 55, in <module> b1.shot() NameError: name 'b1' is not defined '''
转载于:https://www.cnblogs.com/mingerlcm/p/8423387.html
最后
以上就是故意世界为你收集整理的python 面向对象 析构方法的全部内容,希望文章能够帮你解决python 面向对象 析构方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复