# ### __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 = objprint("<==start===>")del objdel obj2print("<==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 osclass 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)