Как каждый раз возвращать новый объект, вызывая одно и то же значение dict в Python? - PullRequest
0 голосов
/ 19 сентября 2018

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

Пример:

types = {}
types[first_type] = FirstType()
types[second_type] = SecondType()

И установив types[first_type] я должен получить new FirstType():

some_var = new types[first_type] # this is illegal statement.

Как мне добиться этого в Python ?

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Вот рабочий пример со стандартными типами:

>>> types = {"list": list, "int": int, "dict": dict}
>>> types["list"]()
[]
>>> types["int"]()
0
0 голосов
/ 19 сентября 2018

Попробуйте сами превратить их в "генераторы объектов".

types = {}
types[first_type] = FirstType
types[second_type] = SecondType

Тогда вы можете каждый раз получать новый объект, вызывая эту точку.

some_var = types[first_type]()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...