Вот шаблон, который я собираюсь использовать:
class Dicty(dict):
def __init__(self):
self.__dict__ = self
d = Dicty()
d.foo = 'bar'
print d['foo']
>>> bar
d['foo'] = 'baz'
print d.foo
>>> 'baz'
Как правило, я предпочитаю семантику доступа к атрибуту объекта, а не доступ к dict get / set, но есть некоторые обстоятельства, когда требуется доступ, подобный dict (для например, d ['foo-bar'] = 'baz'
), и я бы предпочел не использовать специальные методы установки геттеров для этих случаев, поэтому, таким образом, двойное поведение dict и object одновременно время с общими атрибутами.
Есть ли проблемы с указанным выше шаблоном?