Вот шаблон, который я собираюсь использовать:
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'
Как правило, я предпочитаю семантику доступа к объектным атрибутам доступа к типу get/set, но есть некоторые обстоятельства, когда требуется доступ к типу (например, d['foo-bar'] = 'baz'
), и я бы предпочел не иметь специального getter методы setter для этих случаев, таким образом, двойственное поведение dict и объекта одновременно с общими атрибутами.
Есть ли какие-либо ошибки с указанным выше шаблоном?