__del__ 析构方法 __init__ 构造方法

Posted huangjiangyong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了__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)

  

以上是关于__del__ 析构方法 __init__ 构造方法的主要内容,如果未能解决你的问题,请参考以下文章

知识点:构造和析构方法 __new__ , __init__ , __del__

Python Class __init__ __del__ 构造,析构过程解析

一文了解 Python 中的对象析构函数:__del__

魔方方法篇第一章--------构造与析构

Python学习—面向对象学习下

内置方法及模块初识