я сломалась моя проблема в следующем примере программысписок Python на уровне модуля
xy8_block = [
{'pulse': {}},
]
class Dummy:
def __init__(self, block=list(xy8_block)):
self._block = block
dumdum = Dummy()
dumdum._block[0]['pulse']['test'] = 0
print(xy8_block)
Если я запускаю программу, переменная xy8_block
изменяется, хотя обе переменные dumdum._block
и xy8_block
имеют и другую память адрес.
Как я могу избежать этой проблемы без непосредственной инициализации класса класса со значением.
Заранее спасибо.
@lucasnadalutti правильно, вы можете доказать это, глядя на идентификаторах словаря: '' печати ID (xy8_block [ 0]) '' и '' print id (dumdum._block [0]) '' –
Возможный дубликат [«Наименьшее удивление» и аргумент аргумента по умолчанию] (http://stackoverflow.com/questions/1132941/least- astonishment-and-the-mutable-default-argument) – wwii