#ВопросСподвохом — ответ от нашего ментора по Python🐍



Создан будет один массив. И создан он будет при первом вызове функции, так как является параметром по умолчанию для этой функции

Это происходит потому, что для неизменяемых (immutable) типов данных в функцию передаётся значение, а для изменяемых (mutable) — ссылка.



И после этого получается, что при первой инициализации массива он становится «привязанным» к функции modfiy_or_create_array. Также стоит учитывать, что при присвоении переменной значения другой изменяе
мой переменной присваивается не содержание объекта, а ссылка на него. Проверить это можно следующим способом:



print(

all((array is array2,

array2 is array3,

array3 is array))

) # True




Подробнее: https://stackoverflow.com/questions/1132941/least-astonishment-and-the-mutable-default-argument