__del__ 析构方法 __init__ 构造方法

# ### __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)

  

猜你喜欢

转载自www.cnblogs.com/huangjiangyong/p/10920650.html
今日推荐