Pull to refresh

Comments 5

Спасибо, интересно.

В ф-ии start нежелательно делать дефолтным значение с мутабельным аргументом 'argv=[ ]'.

Аргументы в ней инициализируются один раз при создании ф-ии, и в такой объект могут добавиться новые данные при вызове ф-ии еще раз.

def f(a=[]):
a.append(100)
return a

lst = f()
print(f"lst: {lst}")

lst2 = f()

print(f"lst2: {lst2}")

>>>

lst: [100]

lst2: [100, 100]

В ООП. Все объекты в ООП и что может создавать новые экземпляры на куче

Я бы не был так категоричен в высказываниях. new может быть перегружен. Под капотом может скрываться выделение памяти не из кучи, а из структуры типа arena.

А разве не стоит уточнять, про какую именно реализацию libc идет речь? Ведь в разных куча может быть реализована по-разному

Рассматривается общий случай

Sign up to leave a comment.

Articles