http://parand.com/say/index.php/2008/10/13/access-python-dictionary-keys-as-properties/から参照
辞書の構文ではなくドット表記を使用して辞書の値にアクセスしたいとします。つまり、次のものがあります。
d = {'name':'Joe', 'mood':'grumpy'}
そして、「名前」と「気分」を取得したい
d.name d.気分
いつもの代わりに
d['name']
d['mood']
なぜこれをしたいのですか?多分あなたはJavascript Wayが好きです。または、より審美的だと思います。私の場合、Django モデルのインスタンスまたは単純な辞書のいずれかである項目を同じコードで処理する必要があるため、属性を取得するための統一された方法を提供する必要があります。
それは非常に単純であることがわかりました:
class DictObj(object):
def __init__(self, d):
self.d = d
def __getattr__(self, m):
return self.d.get(m, None)
d = DictObj(d)
d.name
# prints Joe
d.mood
# prints grumpy