41节课后作业
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
f=FileObject('re.txt')
for i in f:
print(i)
Traceback (most recent call last):
File "C:/Users/liu/PycharmProjects/pythonProject1/venv/Scripts/41zuoye0.py", line 12, in <module>
for i in f:
TypeError: 'FileObject' object is not iterable
这个类该怎么用啊,定义实例对象f后不知道该怎么用了
一样啊,f.read() f.readlines()这样用
你要实际指明需要进行调用的对象,比如此时的 new_file 是被文件对象赋值的变量名,若你需要读取这个对象,就应该通过 类名.实例变量 这样调用
还有就是 __del__ 魔法方法是当你对类对象调用 del 时候才会自动调用 __del__ 魔法方法
参考代码:
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
f=FileObject('re.txt')
# 读取实例属性 new_file
data = f.new_file.read()
for i in data:
print(i)
# 自动调用 __del__ 魔法方法,删除文件对象
del f Twilight6 发表于 2021-5-18 12:30
你要实际指明需要进行调用的对象,比如此时的 new_file 是被文件对象赋值的变量名,若你需要读取这个对象 ...
谢谢啊,还有你这串代码第7行什么用啊 1062195630 发表于 2021-5-20 15:24
谢谢啊,还有你这串代码第7行什么用啊
销毁这个变量对象,但不对数据本身
Twilight6 发表于 2021-5-20 18:27
销毁这个变量对象,但不对数据本身
不销毁会有什么后果啊 1062195630 发表于 2021-5-20 19:11
不销毁会有什么后果啊
那对该类的实例调用 del 时候就相当于没有调用 Twilight6 发表于 2021-5-20 19:32
那对该类的实例调用 del 时候就相当于没有调用
懂了懂了,谢谢
页:
[1]