here で説明されているように、Javascript スタイルの辞書を使用しています。実装:
class DotDict(dict):
def __getattr__(self, attr):
return self.get(attr, None)
__setattr__= dict.__setitem__
__delattr__= dict.__delitem__
私はこの構造をしばらく問題なく使用してきましたが、最近、次のようにハイフンでつながれたキーを持つ辞書が必要になりました。
foo = DotDict()
foo.a = 'a' #Business as usual
foo.a-b = 'ab' #Broken
foo.ab に割り当てると、次のようになります。
SyntaxError: can't assign to operator
これは、'-' がキー名の一部としてではなくマイナス演算として認識されるため、壊れます。ドット スタイルのメンバー アクセスで辞書を作成する別の方法はありますか?