Eu gostaria de poder fazer isso:
>>> obj = Example('hi', 'hello')
>>> obj.a
'hi'
>>> obj.sub_obj.b
'hello'
Eu tento isso, mas recebo AttributeError: 'dict' object has no attribute 'b'
:
class Example:
def __init__(self, a, b):
self.a = a
self.sub_obj = {}
self.sub_obj.b = b
Vejo uma pergunta semelhante, mas não entendo muito: os objetos python podem ter propriedades aninhadas? . Eu só quero que a saída JSON tenha objetos aninhados. A API exige que eu faça isso.
O atributo é um dicionário, então atribua suas chaves da maneira normal, com
[]
sintaxe.Os objetos criados pela sintaxe literal continuarão sendo do tipo vanilla e não terão seus novos métodos/atributos.