|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
import os
import pickle
class MyDes:
saved = [] #保存属性到列表
def __init__(self,name=None):
self.name = name
self.filename = str(self.name) + '.pkl'
def __get__(self,instance,owner):
if self.name not in MyDes.saved:
raise AttributeError('%s 属性嗨没有赋值!'%self.name)
with open(self.filename,'rb') as f: #获取时 只读 二进制
value = pickle.load(f) #加载 rb模式 打开的文件
return value #读出其中的内容
def __set__(self,instance,value):
with open(self.filename,'ab') as f: #设置时 末尾写入 二级制模式 这里用末尾写入 如果写入多个属性 但是始终只能读出第一个属性
MyDes.saved.append(self.name) #属性存储到对应的列表中
pickle.dump(value,f) #荡进去,把文件腌制起来
def __delete__(self,instance):
MyDes.saved.remove(self.name) #删除列表中的属性
os.remove(self.filename) #删除制定的文件
class Test:
x = MyDes()
|
|