Курс 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
- Преобразование строки в число
- Тестирование функции сложения
- Нахождение отличий в списках
- Работа с файловой системой в Python
- Очистка входных данных
- Избегайте изменяемых аргументов
- Работа с аргументами командной строки
- Работа с часовыми поясами в Python
- Работа с collections в Python
- Повторение элементов в Python
- Ускоренный импорт библиотек
- Декораторы в Python
- Запуск асинхронной корутины
- Генерация фальшивых данных с Faker
- Удаление специальных символов
- Преобразование Excel в PDF с Spire.XLS
- Частичное совпадение пользовательского ввода в Python 3.10
- Генератор списка в Python
- Компиляция регулярных выражений
- Тест скорости набора текста на Python
- Упрощение работы с JSON-данными в Python
- Описание скриптов в README
- Декодирование байтов в строку
- Поиск уникальных и повторяющихся элементов
- Управление ресурсами с контекстными менеджерами
- Атрибуты объекта в Python
- Пропуск строк в файле с itertools
- Функция с *args.
- Раздувающийся словарь в Python
- Лямбда-функции в цикле
- Работа с итераторами через срезы
- Метод __int__ в Python
- Разность множеств
- Операции с кортежами
- Глобальные переменные в Python
- Обновление и получение данных в SQLite
- Namedtuple в Python
- Создание GUI на Tkinter
- Цикл for в Python
- Перевернуть список в Python
- Копирование словарей и списков в Python
- Преобразование символов с помощью map
- Разделение строк методом split()
- Обработка ошибок в Python















