请问最后的del的作用是什么?
题目要求为:写一个 FileObject 类,给文件对象进行包装,从而确认在删除对象时文件能自动关闭?想问一下各位大佬,为什么在重写__del__的时候还要多加一句del self.new_file?不是已经输入del new_file后,__del__才会被调用吗?那按道理来说调用完__del__后,new_file就应该已经被删除了的才对。
class FileObject:
'''给文件对象进行包装从而确认在删除时文件流关闭'''
def __init__(self, filename='sample.txt'):
#读写模式打开一个文件
self.new_file = open(filename, 'r+')
def __del__(self):
self.new_file.close()
del self.new_file
销毁实例化对象,释放其占用的内存空间 因为默认的del只会删除对象,而没有其他操作
注意看本代码的说明。如果你要处理多个文件
例如:打开——读取——关闭——删除,这么写是很繁琐
用这个类包装好以后,只需要实例化对象——读取——删除就行了
正常的del,只做一件事,删除对象
这个类里面的del(因为重写了,所以默认的del方法被覆盖了也就不存在了)
做的是关闭——删除
你没理解重写默认方法的概念,重写以后就覆盖掉了。。。
例如__add__,默认是相加
你改写成相减以后,默认的相加就被覆盖了,就只执行改写后的相减 笨鸟学飞 发表于 2020-12-8 22:23
因为默认的del只会删除对象,而没有其他操作
注意看本代码的说明。如果你要处理多个文件
例如:打开—— ...
谢谢解答!
页:
[1]