В Python всё передаётся по ссылке!
И нет, это не баг, это фича 🌝
Тут есть несколько типичных граблей: ▫️ Одинаковые ссылки на объекты при присваивании ▫️ Атрибуты классов, которые неожиданно становятся общими для всех экземпляров ▫️ Параметры функций по умолчанию, которые создаются один раз и потом живут своей жизнью
Читаем, как на них не наступать, здесь 👈🏻