ChatCrawlerпоиск по публичному Telegram Открыть приложение
P

Python Community | Chat

сообщение · 2025-07-20 17:14 UTC
I
Ссылка
нажмите — покажем
‍🖥 Что выведет код ниже? def append_to_list(val, my_list=[]): my_list.append(val) return my_list print(append_to_list(1)) print(append_to_list(2)) print(append_to_list(3)) 🤯 Подвох Многие думают, что каждый вызов append_to_list() создаёт новый список, и ожидают вывод: [1] [2] [3] Но на самом деле Python выведет: [1] [1, 2] [1, 2, 3] 🧠 Почему так происходит? В Python значения аргументов по умолчанию вычисляются один раз — при определении функции, а не при каждом вызове. Значение my_list=[] создаётся один раз и сохраняется между вызовами. Это работает как статическая переменная внутри функции. ✅ Как это исправить? Используй None как значение по умолчанию: def append_to_list(val, my_list=None): if my_list is None: my_list = [] my_list.append(val) return my_list print(append_to_list(1)) # [1] print(append_to_list(2)) # [2] print(append_to_list(3)) # [3] 💡 Вывод Не используйте изменяемые объекты (например, list, dict, set) как значения по умолчанию для аргументов функций в Python. @Python_Community_ru
848 ·

Все сообщения за 20 июля 2025 · Вся лента · оригинал в Telegram

Открыть в Telegram Каталог площадок Искать в ChatCrawler

Слепок открытой публичной ленты из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог