Курс 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"
- Логирование с Logzero
- Скрытие вывода данных
- Разделение строки на пары ключ-значение.
- Конвертация коллекций в Python.
- Модуль array: создание и использование массивов
- Руководство по использованию Colorama
- Отладка регулярных выражений в Python
- Генераторы в Python
- Работа с PosixPath() в Python
- Создание детектора плагиата
- Приоритет операций в Python
- Создание виртуальной среды
- Библиотека Rich: форматирование текста
- Избегайте изменяемых аргументов
- Переопределение метода __eq__
- Преобразование объекта в строку
- Печать месячного календаря
- Операторы увеличения и уменьшения в Python
- Работа с комплексными числами
- Извлечение аудио из видео
- None в Python: использование и особенности
- Работа с итераторами через срезы
- Непрерывная проверка в Python
- Переопределение метода __lshift__
- Извлечение чисел из текста
- Генераторы в Python
- Подсчет вхождений элементов
- Удаление элементов из списка в Python
- Абстракции словарей и множеств в Python
- Основы Python за 14 дней
- Python: Splat-оператор и splatty-splat
- Сравнение строк в Python
- Настройка логгера Logzero
- Отображение HTML кода в Python
- Операторы += в Python
- Наиболее частотные элементы с помощью Counter
- Управление доступом к модулю
- Транспонирование 2D-массива с помощью zip
- Печать календаря в Python
- Проблема сравнения словарей
- Многострочные комментарии в Python
- Преобразование PowerPoint в PDF.
- Циклы for в Python
- Извлечение аудио из видео
- Глубокое копирование объектов















