Курс 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"

  1. Ошибка NotImplemented в Python
  2. Динамическая типизация в Python
  3. Установка Python — Простое руководство
  4. Цикл for в Python
  5. Перехват исключений в Python
  6. Декоратор @override
  7. Функция enumerate в Python
  8. Метод index() в Python
  9. Использование функции product
  10. Создание .exe файла с pyinstaller
  11. Отладка в Python
  12. Метод setdefault() в Python
  13. Цикл for в Python
  14. Список методов и атрибутов
  15. Работа с *args и **kwargs в Python
  16. Обмен данными с asyncio.Queue
  17. OrderedDict — упорядоченный словарь
  18. Извлечение аудио из видео
  19. Поиск индекса элемента
  20. Настройка вывода NumPy
  21. Запрос пароля с помощью getpass
  22. Модуль os: работа с файлами и папками
  23. Избегайте двойного подчеркивания
  24. Кортеж в Python: создание и использование
  25. Генераторы и сеты в Python
  26. Enum в Python
  27. Библиотека wikipedia для Python
  28. Создание даты из строки ISO
  29. Форматирование строк в Python
  30. Проверка однородности элементов списка
  31. Лямбда-функции в Python
  32. Создание уникального множества
  33. Проверка дубликатов в Python
  34. Регистрация на хакатоне
  35. Разделение строки с регулярными выражениями
  36. Поиск частых элементов в списке
  37. Создание функций высшего порядка
  38. Форматирование данных с помощью pprint
  39. Добавление элемента в список.
  40. Генераторы списков в Python
  41. Ключевое слово global в Python
  42. Отрицательные индексы списков в Python
  43. Управление асинхронными задачами на Python.
  44. Работа с переменными в Python
  45. Математические функции в Python

Marketello читают маркетологи из крутых компаний