# ### __del__ 析构方法 __init__ 构造方法
‘‘‘
触发时机:当对象被内存回收的时候自动触发[1.页面执行完毕回收所有变量 2.所有对象被del的时候]
功能:对象使用完毕后资源回收
参数:一个self接受对象
返回值:无
‘‘‘
class LangDog():
def __init__(self,name):
self.name = name
def eat(self,something):
print("可爱的小狼{},喜欢吃{}".format(self.name,something))
def __del__(self):
print("__del__方法被触发")
# (1) 1.页面执行完毕回收所有变量
obj = LangDog("詹姆斯·狗蛋")
obj.eat("屎")
print("<===>")
# (2) 2.所有对象被del的时候
‘‘‘
只有当所有指向该对象的变量都删除的时候,才算真正的删除该对象
‘‘‘
obj2 = obj
print("<==start===>")
del obj
del obj2
print("<==end===>")
# (3) 用类来模拟文件写的操作
# fp = open("ceshi111.txt",mode="w",encoding="utf-8")
# fp.write("sfdsdf")
# fp.close()
# fp = open("ceshi111.txt",mode="r",encoding="utf-8")
# res = fp.read()
# fp.close()
# print(res)
print("<=111==>")
import os
class MyFile():
# 判断是否创建MyFile该对象
def __new__(cls,filename):
if os.path.exists(filename):
return object.__new__(cls)
return print("该文件不存在")
# 产生文件对象
def __init__(self,filename):
self.fp = open(filename,mode="r",encoding="utf-8")
# 读取文件
def readfile(self):
res = self.fp.read()
return res
def __del__(self):
print(0)
# 自动触发__del__ ,帮助我们关闭文件
self.fp.close()
obj = MyFile("ceshi222.txt")
res = obj.readfile()
print(res)
原文:https://www.cnblogs.com/huangjiangyong/p/10920650.html