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