|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 thepoy 于 2019-5-18 19:25 编辑
- import time as t
- import os
- os.chdir('D:\\python\\类和对象')
- class MyDes:
- def __init__(self, value = None, name = None):
- self.val = value
- self.name = name
- def __get__(self, instance, owner):
- timeR = t.strftime("%Y-%m-%d %H:%M:%S", t.localtime())
- with open('record.txt', 'a') as file:
- record = '%s 读取变量:%s = %d\n' % (timeR, self.name, self.val)
- file.write(record)
- return self.val
- def __set__(self, instance, value):
- self.val = value
- timeW = t.strftime("%Y-%m-%d %H:%M:%S", t.localtime())
- with open('record.txt', 'a') as file:
- record = '%s 修改变量:%s = %d\n' % (timeW, self.name, self.val)
- file.write(record)
复制代码
如何才能做到同时传入第7行__init__中的value和name?
我的做法是:
- class Test:
- x = MyDes(10, '金额')
复制代码
感觉很蠢
另外:
- import pickle
- import os
- class MyDes:
- saved = []
-
- def __init__(self, name = None):
- self.name = name
- self.filename = 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 file:
- value = pickle.load(file)
- return value
- def __set__(self, instance, value):
- with open(self.filename, 'wb') as file:
- pickle.dump(value, file)
- MyDes.saved.append(self.name)
- def __delete__(self, instance):
- os.remove(self.filename)
- MyDes.saved,remove(self.name)
复制代码
以上代码又如何才能将第7行__init__里的name和第19行__set__里的value同时传入呢? |
|