重複の可能性:
Python の属性のように辞書キーにアクセスしますか?
これをPythonで実装する方法はありますか
foo = {'test_1': 1,'test_2': 2}
print foo.test_1
>>> 1
dictを拡張すればいいのかもしれませんが、関数を動的に生成する方法がわかりません。
重複の可能性:
Python の属性のように辞書キーにアクセスしますか?
これをPythonで実装する方法はありますか
foo = {'test_1': 1,'test_2': 2}
print foo.test_1
>>> 1
dictを拡張すればいいのかもしれませんが、関数を動的に生成する方法がわかりません。
どうですか:
class mydict(dict):
def __getattr__(self, k):
return self[k]
foo = mydict({'test_1': 1,'test_2': 2})
print foo.test_1
オーバーライドすることもできます__setattr__()
。
namedtupleを使用して同様の動作を実現できます。しかし、唯一の欠点は、その不変です
>>> bar = namedtuple('test',foo.keys())(*foo.values())
>>> print bar.test_1
1
>>> print bar.test_2
2