Курс 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 3.12
- Преобразование числа в список цифр
- Методы в Python
- Установка и использование TensorFlow
- Удаление символа из строки
- Класс-оболочка для словарей
- Виртуальные среды в Python
- Автоматизация с Python
- Расчет времени выполнения
- Модуль math: константы π и e
- Оператор += для объединения строк
- Объединение словарей в Python
- Оператор is в Python
- Отправка HTTP-запросов в Python
- Сложение матриц в NumPy
- Метод setdefault() в Python
- Создание и удаление объектов
- Защита данных в Python
- Переопределение метода __rshift__
- Генерация QR-кодов с Python
- Срезы в Python
- Генерация UUID в Python
- Атрибуты класса и экземпляра
- Генерация случайных чисел Python
- Генераторные функции в Python
- Асинхронный код в Python
- Создание словаря с значением по умолчанию
- Группы исключений в Python
- Получение ID текущего процесса
- Дефолтные параметры в Python
- Обработка данных в Python
- Работа с Path в Python
- Принципы Zen of Python
- Отладчик pdb: начало работы
- Объединение словарей в Python
- Flask — веб-фреймворк Python
- Метод __call__ в Python
- Метод __ixor__ для побитового исключающего ИЛИ
- Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
- Списковый компрехеншен.
- Конкатенация строк с методом join()
- Создание директории в Python
- Проверка элементов списка условием
- Python Менеджер контекста
- Concrete Paths — метод .with_suffix()
- Оптимизация гиперпараметров с Scikit Optimize
- Проблема сравнения словарей















