Курс 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 Метод Union Множеств
- Тернарный оператор в Python
- Создание множества в Python
- Нан-рефлексивность в Python
- Нахождение самого длинного слова в списке с помощью max
- Преобразование range в итератор
- Создание словарей и множеств в Python.
- Поиск самого длинного слова в списке с использованием max()
- inspect в Python: анализ кода
- Python reversed() vs срез[::-1]
- Порядок операций в Python
- Работа с Enum в Python3.
- Очистка списка от False, None, 0, «»
- Замена текста с помощью sub
- Форматирование кода на Python
- Функция zip() в Python
- Переопределение метода __eq__
- Работа с областями видимости переменных
- Установка библиотек в Python
- Python enumerate() функции
- Импорт модулей в Python 3.12
- Преобразование текста в нижний регистр
- Создание копии списка в Python
- Область видимости переменных
- Капитализация строк
- Особенности ключей словаря в Python
- Применение функции к списку
- Работа с геоданными с помощью geopy
- Функция count() в Python
- Присвоение и ссылки
- Метод __index__ в Python
- Создание вложенного генератора
- Регистрация на курсы SF Education
- Символ подчеркивания в Python
- Равенство и идентичность в Python
- Оператор in в Python
- Синтаксис переменных цикла в Python
- Функция product() в Python
- Реверс строки и списка в Python.
- Метод get() для словарей
- Декодирование строк в Python
- Изменение IP-адреса в Python
- Python itertools combinations() — группировка элементов
- Возвращение нескольких значений через кортеж или класс
- Наследование в программировании
- Модуль xkcd: загрузка комиксов
- Функции в Python: создание и вызов
- Каналы Senior: Python, Java, Frontend, SQL, C++















