Курс 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"
- Метод __complex__ в Python
- Antigravity модуль
- Работа со строками в Python.
- Импорт классов из другого файла
- Циклы for в Python
- Добавление элементов в список: append() vs extend()
- Шаблоны Flask: условия и циклы
- Мониторинг работы программы Py-spy
- Получение текущего времени в Python
- Итерация по итерируемым объектам
- Перебор элементов списка в Python
- Работа со строками в Python
- Операции с массивами в NumPy
- Вычисление разности множеств в Python
- Создание словаря в Python
- Удаление символов новой строки в Python.
- Enum в Python
- Транспонирование 2D-массива с помощью zip
- Удаление элементов из списка
- Установка Python — Простое руководство
- inspect в Python: анализ кода
- Разность множеств
- Наследование в программировании
- Отладчик pdb: начало работы
- Списки в Python
- Структурирование именованных констант
- Сериализация объектов в Python
- Создание графиков в терминале
- Присоединение элементов коллекции
- Модуль Antigravity в Python 3
- Извлечение новостей с помощью newspaper3k
- Преобразование символов в нижний регистр
- Отделение звука от видео
- Декораторы с аргументами
- Игра Виселица на Python
- Управление асинхронными задачами на Python.
- Поиск индекса элемента
- Форматирование строк в Python
- Обработка ошибок в Python
- Сравнение строк в Python
- Работа с массивами в Numpy
- Новшества Flask 2.0
- Справка по импортированным модулям
- Метод rename() для переименования файлов и каталогов
- Метод Enumerate() для списков
- Безопасный доступ к значениям словаря















