Курс 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
- Применение функции к списку
- Сравнение def и lambda в Python
- Реверс строки и списка в Python.
- Лямбда-функции в Python
- Оператор in и not in в Python
- Форматирование строк с % в Python
- Поиск уникальных элементов строкой в Python
- Создание комплексных чисел
- Объединение словарей в Python
- Генерация фальшивых данных с Faker
- Метод rsub в Python: расширение функциональности вычитания
- Моржовый оператор в Python 3.8
- Декоратор total_ordering для сравнения объектов
- Удаление символа из строки
- Отладка утечек памяти в Python
- Аннотации типов в Python
- Проверка кортежей.
- Работа с argparse
- Декораторы в Python
- Python: Фильтрация списков с помощью filter()
- Преобразование данных в Python
- Работа с дробями в Python
- Подсчет частоты элементов с Counter
- Установка и использование pyshorteners
- Эффективная конкатенация строк с использованием join()
- Lambda Functions in Python
- Поиск HTML-элементов с BeautifulSoup
- Функция all() в Python
- Псевдонимы в Python
- Отделение звука от видео
- UserString в Python
- GitHub в Telegram: подписка на уведомления
- Декораторы в Python
- Объединение словарей в Python
- Создание namedtuple из словаря
- Оператор in для Python
- Парсинг статей с Newspaper3k
- Комплексные числа в Python
- Обновление ключей в Python
- Запрос пароля с помощью getpass
- Структуры данных в Python
- Шаблоны Flask: условия и циклы
- Установка и использование Python-dateutil
- Получение ID процесса
- Списковый компрехеншен.
- Тип CodeType в Python.
- Передача аргументов в Python
- Область видимости переменных















