类似于 Python 字典的 setter 和 getter

问题描述

我有以下问题: 一个类包含一个字典的字典......例如

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,数学