Я хочу создать автоматически сгенерированный шаблон словаря.
Формат словаря такой: {'google_drive': {'services': []}, 'dropbox': {'services': []}, 'test': {'services': []}}
Все ключи имеют одинаковое значение {'services': []}
и их значения идентификаторы / адреса должно быть по-другому. Проблема теперь в том, что все значения одинаковы.
# init function has an array ["google_drive", "dropbox", "test"]
# so that all the key-value pairs can be created automatically
test = CloudInfo().init().config_info
print(id(test["google_drive"]["services"]))
print(id(test["dropbox"]["services"]))
print(id(test["test"]["services"]))
Вывод
2382756081216
2382756081216
2382756081216
И я нашел проблему в моем инкапсулированном методе:
def update_all_value(self, keys, value):
__keys = keys
__dict = self.__dict
__value = value
if __keys is not None:
for key in __keys:
if key in __dict:
__dict.update({key: __value})
self.__dict = __dict
return self
Все ключи указали на одну переменную __value
.
Если я изменил __dict.update({key: __value})
на __dict.update({key: {'services': []}})
, значения словаря - это разные идентификаторы. Но функция не может использоваться повторно.
Есть ли хорошее решение, которое может обновить все значения словаря с разными идентификаторами и сохранить входной параметр value
работающим?