0
0 комментариев

У меня вопрос по теме дефолтных параметров у функций.
То есть по

>>> def foo(my_list=[]):
...   my_list.append(1)
...   return my_list
...
>>> foo()
[1]
>>> foo()
[1, 1]
>>> foo()
[1, 1, 1]
>>>

Я понимаю почему так происходит (вопрос разумности такого поведения оставим за рамками)

Правильно ли я понимаю, что если единожды вызвать функцию с таким вот дефолтным списком, где заполнить его гигабайтом данных, вернуть, использовать и потом забыть, то память все равно будет удерживаться за счет того, что дефолтный [] приколочен к def foo?


Добавить комментарий