Курс 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
- Метод join() с набором
- Особенности множеств в Python
- Генерация случайных чисел в Python
- Настройка вывода NumPy
- Константы в модуле cmath
- Цикл for в Python
- Преобразование генераторов в циклы
- Возврат значений из генератора
- Создание пользовательской коллекции в Python
- Изменение списка срезами
- Вывод сложных структур данных с помощью pprint
- Преобразование данных в Python
- Сравнение строк в Python
- GitHub в Telegram: подписка на уведомления
- Генераторы в Python
- *args и **kwargs в Python
- Подписка на Kaspersky Team
- TON Smart Challenge #2: участие и подготовка
- Удаление ключа из словаря в Python
- Форматирование строк с f-строками
- Декораторы в Python
- Удаление специальных символов с помощью re.sub
- Безопасные SQL-запросы в Python 3.11
- Статическая типизация в Python
- Расчет времени выполнения кода
- Разделение функций на этапы
- Обработка ошибок в Python
- Работа с парами ключ-значение
- Сокращение ссылок с pyshorteners
- Обработка исключений в Python
- Парсинг веб-страниц с Beautiful Soup
- Извлечение новостей с помощью newspaper3k
- Сложные типы данных в Python
- Пространство имен в Python
- Идентификатор объекта в Python
- Оператор «not» в Python
- Получение текущей даты и времени
- Инверсия списка и строки в Python
- Мощь вложенных функций в Python
- Удаление пробелов методом translate()
- Установка и использование howdoi
- Метод rsub в Python: расширение функциональности вычитания
- Псевдонимы в Python
- Аннотации типов в Python















