Форум сайта python.su
0
Здравствуйте. Не могу разобраться в коде при изучении программы.
Список увеличивается таким кодом :
def Enlarge(table): table[:] = Init(len(table[2])*2, table[2])[:] return table
table[:] =
table = Init(len(table[2])*2, table[2])[:]
Офлайн
это создание копии(нового обьекта)
>>> l = [] >>> id(l) 4365312264 >>> id(l[:]) 4355936968
Офлайн
0
В данном случае возврат копии или того же самого объекта в чем отличаются?
Возвращается всегда увеличенный список, но конечный результат разный. При отладке, после возврата список в одном случае остается увеличенный, а в другом возвращается к первоначальному размеру. Вот тут я пока не понимаю.
Здесь полный код программы - http://uneex.org/LecturesCMC/PythonIntro2017/07_Dicts?action=AttachFile&do=view&target=emuhash.py
Отредактировано lerr (Июль 22, 2018 21:29:22)
Офлайн
186
> В данном случае возврат копии или того же самого объекта в чем отличаются?
В данном случае всё содержимое списка заменяется содержимым другого списка. Ну и да, это пример того как делать не надо.
Офлайн
0
Спасибо.
Офлайн