Курс Python → Избегание изменяемых аргументов
Избегайте использования изменяемых аргументов по умолчанию в Python, так как это может привести к неожиданным результатам. Вместо этого, хорошей практикой является присваивание None значению аргумента по умолчанию и последующая проверка на то, передано ли какое-либо значение функции для этого аргумента.
Например, рассмотрим функцию, которая принимает список в качестве аргумента и добавляет элемент в этот список. Если использовать изменяемый список в качестве аргумента по умолчанию, то при каждом вызове функции будут использоваться одни и те же данные, что может привести к нежелательным побочным эффектам.
def add_element(item, my_list=None):
if my_list is None:
my_list = []
my_list.append(item)
return my_list
print(add_element(1)) # [1]
print(add_element(2)) # [2]
В данном примере, если не передать список при вызове функции, будет создан новый пустой список, к которому будет добавлен элемент. Таким образом, избегается использование одного и того же списка при каждом вызове функции.
Другие уроки курса "Python"
- Управление асинхронными задачами на Python.
- Работа с контекстным менеджером Pool
- Обновление и получение данных в SQLite
- Хеши в Python
- Проверка наличия элемента в списке
- Добавление кнопки в tkinter
- Динамическая типизация в Python
- Обработка исключений с блоком else
- Отладка утечек памяти в Python
- Работа с файлами в Python
- Профилирование данных с Pandas.
- Работа со строками в Python
- Python: изменяемые и неизменяемые коллекции
- Работа с множествами в Python
- Разделение строки с помощью split()
- Python Enumerate
- Запуск асинхронной корутины
- Нарезка списков в Python
- Сортировка с помощью key
- Профилирование данных с Pandas
- Метод split() для разделения строк
- Списковые включения в Python
- Блок else в циклах.
- Разработка Telegram-ботов
- Создание и удаление объектов
- Упрощение работы с JSON-данными в Python
- Хранение переменных в словаре.
- Magic Commands — улучшение работы с Python
- Создание списков в Python
- Функциональное программирование.
- Инициализация переменных
- Глубокое копирование объектов
- Работа с библиотекой xkcd
- Метод ipow для возведения в степень
- Измерение времени выполнения кода
- Список импортированных модулей в Python
- Наиболее частотные элементы с помощью Counter
- Установка и использование pyshorteners
- Однострочники Python
- Метод join() для объединения элементов
- Округление банкира в Python
- Функция zip() в Python
- Импорт модулей и пакетов в Python















