析构函数

Posted yfjly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了析构函数相关的知识,希望对你有一定的参考价值。

# 构造方法 申请一个空间
# 析构方法  释放一个空间,在释放空间之前执行的
# # 垃圾回收机制a # # class A: # def __del__(self): # print("执行我了") # # a = A() # # del a # 对象的删除(不过一般都由垃圾回收机制自动负责) # print(a) # class File(): # 处理文件 def __init__(self,file_path): self.f = open(file_path,"r",encoding="utf-8") def read(self): return self.f.read(1024) def __del__(self): # 析构函数一般都是去释放一些在创建对象的时候接用的一些资源 self.f.close() # 在del 对象的时候会执行,或者在垃圾回收机制的时候会执行 f = File("内容02.py") print(f.read()) # 不管主动还是被动,这个f对象总会被清理掉,被清理掉之前会自动触发__del__ 方法,这个方法就会归还操作系统的文件资源 # 某对象借用了操作系统的资源,还要通过析构方法归还回去:文件资源,网络资源, # del f # 删除文件资源 # f.close() #释放操作系统的文件资源
#
# with open() as f:
# "code"
# # 如果在with代码块中出现了一些特殊异常,就可能来不及执行f.close() .如果出错自己查不了,就使用open close

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

理解虚析构函数

c++析构函数需要异常处理吗?如需要实现有何要求?

“= default”析构函数和空析构函数有啥区别?

为啥C++里面,析构函数会被调用两次

这个构造函数和析构函数发生了啥?

C++ 类设计总结回顾------析构函数