📄 filedscr.py
字号:
import pickle
class FileDscr(object):
def __init__(self, name):
self.name = name
saved = []
def __get__(self, obj, typ=None):
if self.name not in FileDscr.saved:
raise AttributeError, \
"%r used before assignment." % self.name
try:
f = open(self.name, 'r')
val = pickle.load(f)
f.close()
return val
except (pickle.UnpicklingError, IOError, EOFError, AttributeError, \
ImportError, IndexError), e:
raise AttributeError, \
"Cannot read %r: %s" % (obj, self.name)
def __set__(self, obj, val):
f = open(self.name, 'w')
try:
pickle.dump(val, f)
FileDscr.saved.append(self.name)
except (TypeError, pickle.PicklingError), e:
raise AttributeError, \
"cann't pickle %r" % self.name
finally:
f.close()
class VarClass(object):
foo = FileDscr('foo.x')
bar = FileDscr('bar.x')
vb = VarClass()
vb.foo = 'Google'
vb.foo = ('google', 76723, 'Tokusi')
print vb.foo
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -