Я понимаю, что мутирующие словари при переходе через них могут вызывать ошибки во время выполнения, но я знаю, что есть правильные способы сделать это, и я не могу понять, какие из них приемлемы а какие нет. Консольное тестирование их не помогает, потому что они МОГУТ производить ошибки во время выполнения, я не уверен, что я получаю это правильно или просто получаю удачу.Python - отличия в том, как я мутирую словари в цикле for
Скажем, у меня есть атрибут, статус, то есть словарь статусов:
self.status = {"overall": False, "started":False,
"ready":False, "awakeQueried":False,
"allQueried":False}
Эти изменения в различных трас или Falses в течение хода. У меня есть функция, которая обрабатывает сбой и хочет установить все из них в False. Какой изящный способ? До сих пор я эту работу, но я не уверен, если я буду работать в ошибки во время выполнения какой-то момент:
self.status = {key:False for key in self.status}
Могу ли я сделать это? Здесь я не уверен в низкоуровневом функционировании. Я не делаю копию с .items() или тому подобное. Я переписываю словарь, но сначала он должен обрабатывать правую сторону, но это понимание, поэтому я не уверен, что он полностью завершает понимание перед перезаписью self.status. Хранит ли он какую-то копию в памяти, в то время как он понимает новый dict, а затем устанавливает его или выполняет циклическое определение и установку элементов после каждой итерации (где я думаю, что возникнут проблемы)?