|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
'''编写描述符 MyDes,使用文件来存储属性,属性的值会直接存储到对应的pickle(腌菜,还记得吗?)的文件中。如果属性被删除了,文件也会同时被删除,属性的名字也会被注销'''
import pickle as p
import os
class MyDes:
def __init__(self,attr):
self.attr_name = attr
self.attr = attr
pickle_file = open(('D:\\python代码库\\属性值\\%s.pkl'% self.attr_name),'ab')
p.dump(self.attr,pickle_file)
pickle_file.close()
def __get__(self,instance,owner):
return self.attr
def __set__(self,instance,value):
'''保存属性的值写入到plk文件,但是无法正常写入文件,初次能写入,第二次写入无效,还是原来那样''
self.attr = value
pickle_file = open(('D:\\python代码库\\属性值\\%s.pkl' % self.attr_name),'ab') #打开属性对应的文件
p.dump(value, pickle_file)
pickle_file.close()
print('写入')
def __delete__(self,instance):
try:
os.remove('D:\\python代码库\\属性值\\%s.pkl' % self.attr_name)
del instance.x
except FileNotFoundError:
pass
class Test:
x = MyDes('x')
y = MyDes('y')
s = 123
t = Test()
del t.x
t.y = '123'
f = open("D:\\python代码库\\属性值\\y.pkl",'rb')
s = p.load(f)
print(s)
’问题:当我修改属性的值时候,读取pkl文件,文件内容并没有发生改变,求解‘’‘
|
|