码迷,mamicode.com
首页 > 其他好文 > 详细

__del__ 析构方法 __init__ 构造方法

时间:2019-05-25 00:00:02      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:回收   start   执行   eth   res   构造方法   读取   odi   print   

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

  

__del__ 析构方法 __init__ 构造方法

标签:回收   start   执行   eth   res   构造方法   读取   odi   print   

原文地址:https://www.cnblogs.com/huangjiangyong/p/10920650.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!