微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

类似于 Python 字典的 setter 和 getter

如何解决类似于 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,数学

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。