任何类似于listtuple的列表?

时间:2013-12-10 23:22:48

标签: python-2.7

我有一组包含默认值的关键字。说:

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)但我不知道任何类似的功能。有吗?

我该怎么办?任何其他选择将是好的。提前谢谢。

1 个答案:

答案 0 :(得分:0)

这样的东西?

def __getitem__(self, key):
        try:
            return getattr(self, key) 
        except:
            raise AttributeError('%s is not a valid property'%key)