Курс 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"
- Преобразование списка в словарь через генератор
- Подписка на @SelectelNews
- Установка переменной среды в Python
- Возврат нескольких значений из функции
- Избегайте изменяемых аргументов
- Управление сессиями в Python
- Метод __call__ в Python
- Сравнение неупорядоченных списков
- Хранение переменных в Python.
- Ограничение итераций в Python
- Список и кортеж в Python
- Метод get для словаря
- Глобальные переменные в Python
- Конкатенация строк в Python
- Удаление элементов во время итерации
- Пересечение списков с использованием множеств
- Метод setdefault() в Python
- Декораторы в Python
- Работа с файлами в Python
- Избегание циклических зависимостей классов в Python
- Многоточие в Python
- Работа с timedelta в Python
- Асинхронное выполнение задач в Python
- JMESPath в Python
- Документирование функций в Python
- Python и Монти Пайтон
- Работа с deque из collections
- Функция print() — вывод информации
- Использование функции enumerate()
- Подсчет элементов в Python
- Поиск индекса элемента
- Подсчет элементов с помощью Counter из collections
- Работа с аргументами командной строки в Python
- Monkey Patching в Python
- Отладка производительности Python
- Лямбда-функции в Python
- Регистрация на курсы SF Education
- Работа с пользовательским вводом
- Работа с набором данных CIFAR10 в PyTorch
- Виртуальное окружение Python
- Избегайте пустого списка
- Преобразование числа в восьмеричную строку
- Логирование с Logzero
- Транспонирование 2D-массива с помощью zip
- Обработка исключений
- Работа с JSON в Python
- Передача параметров в Python
- Добавление элементов в список: append() vs extend()
- Сериализация объектов в Python















