我有一组包含默认值的关键字。说:
a_dict =\
{'key1': 'value1'
'key2': 'value2'
... and so on ...}
我不想使用dict
,因为我觉得必须输入:
a_dict['key2']
以获取关键字的值。我想拥有所有这些
变量上可用的关键字(比如var
),以便在我按下'Tab键'之后
$ var。$我得到所有可用的关键字。我尝试过$ namedtuple $
$ collections $ module但我运行的问题是我无法修改
每个键的值(因为它是一个touple)。好事
namedtuple
是我可以迭代它,例如:
for key in var:
#do something with key
我所做的是创建一个名为Keys
的类,如下所示:
class Keys(object):
def __init__(self):
self.key1 = 'value1'
self.key2 = 'value2'
... and so on...
现在我做的时候:
keys = Keys()
我在keys.
中拥有所有命名空间,并且可以修改每个命名空间的所有值
键。问题是现在我不能遍历每个键。我不知道
如何设置__getitem__
方法以迭代实例keys
。
完美的解决方案是使用namedlist
函数(类似于
namedtuple
)但我不知道任何类似的功能。有吗?
我该怎么办?任何其他选择将是好的。提前谢谢。
答案 0 :(得分:0)
这样的东西?
def __getitem__(self, key):
try:
return getattr(self, key)
except:
raise AttributeError('%s is not a valid property'%key)