updateWidgets()
не изменяет self.widgets
на месте (что было бы проблемой), а заменяет его новым списком. Ссылки на старый сохраняются по крайней мере до завершения цикла for
в workOnWidgets()
, поэтому это не должно быть проблемой.
Упрощенно, то, что вы делаете, выглядит примерно так:
>>> l=[1,2,3]
>>> for i in l:
... l=[]
... print(i)
...
1
2
3
Однако у вас возникнут проблемы, если вы измените список, по которому вы перебираете:
>>> l=[1,2,3]
>>> for i in l:
... l[2]=0
... print(i)
...
1
2
0