setter 和 getter 之类的东西用于 python 字典
Something like setter and getter for a python dictionary
我有以下问题:
class 包含一个字典的字典......例如
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 的某个级别的变量并重新运行 corresponding dict上面的视图级别(并且仅当我设置新值时)
例如
try = Try()
try.tryDict['first']['b']['bla']
返回:'x'
try.tryDict['first']['b']['bla']='z'
将 'x'
更改为 'z'
和 returns try.tryDict['first'] 的内容 ({'b':{'bla':'x'},'c':1}
)
要了解我为什么需要这个:
dict 实际上是 file-praser-functions 的列表,内容也存储为 dict。
即
dict = {'file-1':dict-1, 'file-1':dict-1, 'file-1':dict-1, ...}
和dict['file-1']['content-3']=1
我设置了新的内容
并使用 dict['file-1'].write()
,文件的内容在文件中更新。字典是一个 class 实例,我想立即将更改写入文件。
非常感谢您的帮助!
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, 数学
我有以下问题: class 包含一个字典的字典......例如
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 的某个级别的变量并重新运行 corresponding dict上面的视图级别(并且仅当我设置新值时) 例如
try = Try()
try.tryDict['first']['b']['bla']
返回:'x'
try.tryDict['first']['b']['bla']='z'
将 'x'
更改为 'z'
和 returns try.tryDict['first'] 的内容 ({'b':{'bla':'x'},'c':1}
)
要了解我为什么需要这个: dict 实际上是 file-praser-functions 的列表,内容也存储为 dict。 即
dict = {'file-1':dict-1, 'file-1':dict-1, 'file-1':dict-1, ...}
和dict['file-1']['content-3']=1
我设置了新的内容
并使用 dict['file-1'].write()
,文件的内容在文件中更新。字典是一个 class 实例,我想立即将更改写入文件。
非常感谢您的帮助! 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, 数学