сделать словарь для объектов класса в Python - PullRequest
0 голосов
/ 27 августа 2018

я создал класс для создания ключей dict для средства доступа к объектам, но во вложенном случае это не работает

d= {'c': {'v': {'a'}}, 'e': 'x', 'r': 'e'}
class A:
     def __init__(self, dicti):
         self.__dict__.update(dicti)
o = A(d)
# i want something like o.c.v=a , o.e=x, o.r=e
# i'm unable to make nested dict object accessor  

ищет помощи

1 Ответ

0 голосов
/ 27 августа 2018

Вы можете использовать рекурсию для обхода структуры, создавая серию вложенных классов A объектов:

d= {'c': {'v': {'a'}}, 'e': 'x', 'r': 'e'}
class A:
  def __init__(self, dicti):
     self.__dict__ = {a:A(b) if isinstance(b, dict) else b for a, b in dicti.items()}

a = A(d)
print(a.c.v)
print(a.r)

Выход:

{'a'}
'e'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...