问题描述
class Try():
def __init__(self):
self._tryDict = {'first':{'b':{'bla':'x'},'c':1},'second':{'b':15,'c':1}}
@getter
def tryDict....
@tryDict.setter
def tryDict....
我现在想要像 setter 和 getter 这样的东西来改变 dict 某个级别的变量并重新运行 相应 dict 上面的视图级别(并且只有当我设置一个新值时) 例如
try = Try()
try.tryDict['first']['b']['bla']
返回:'x'
try.tryDict['first']['b']['bla']='z'
将 'x'
改为 'z'
并返回 try.tryDict['first'] ({'b':{'bla':'x'},'c':1}
) 的内容
要了解我为什么需要这个: dict 实际上是一个 file-praser-functions 列表,内容也存储为 dict。 即
dict = {'file-1':dict-1,'file-1':dict-1,...}
使用 dict['file-1']['content-3']=1
我设置了新内容
并使用 dict['file-1'].write()
更新文件中的文件内容。 dict 是一个类实例,我想立即将更改写入文件。
非常感谢您的帮助! BR,数学
解决方法
好吧,我现在是这样实现的:
每个文件都有setter和getter函数
class dicts():
.....
# to show the content
@getter
def tryDict(self):
return tryDict.file
# to sett some content
@tryDict.setter
def tryDict(self,entry):
if len(entry)==2:
name,newEntry = entry
tryDict.file[name]= newEntry
if len(entry)==3:
....
如果我想获得条目:
tryDicis = dicts()
tryDicis.trydict # shows the dictionary
我现在可以设置不同的级别,例如:
tryDicis = dicts()
tryDicis.trydict = (name-level-1,name-level-2,...,newEntry)
这可能不是最优雅的方式,但是它很容易实现并且在我的情况下已经足够好了。 BR,数学