Pytest
  • Введение
  • Пример тестирования
  • fixture (Фикстуры)
    • Параметризация
    • декораторы в питоне
    • Пример использования
  • 📚Практика
    • API OpenWeatherMap
    • API OMDBapi
  • scope
  • Запуск тестов через терминал
    • пример иерархии каталогов для организации тестов и их запуска с помощью Pytest
  • argparse
    • Создание интерфейса командной строки
Powered by GitBook
On this page
  1. fixture (Фикстуры)

декораторы в питоне

Декораторы в Python - это гибкий механизм, который позволяет изменять поведение функций или методов. Они представляют собой специальный синтаксис, используемый для обертывания (декорирования) функций или методов другими функциями. Декораторы часто используются для добавления или изменения функциональности функций без изменения их кода.

Синтаксис декораторов в Python выглядит следующим образом:

@decorator
def some_function():
    # код функции

В данном случае, decorator - это функция, которая принимает один аргумент (функцию) и возвращает новую функцию или измененное поведение.

Пример простого декоратора:

def my_decorator(func):
    def wrapper():
        print("Something is happening before the function is called.")
        func()
        print("Something is happening after the function is called.")
    return wrapper

@my_decorator
def say_hello():
    print("Hello!")

say_hello()

В этом примере, my_decorator - это функция-декоратор, которая оборачивает функцию say_hello. При вызове say_hello(), происходит выполнение кода внутри wrapper, который выводит дополнительные сообщения до и после выполнения say_hello.

Декораторы часто используются в различных областях, таких как:

  1. Логирование: Декораторы могут записывать информацию о вызове функции, параметрах и результатах.

  2. Кэширование: Декораторы могут кэшировать результаты вызовов функций для оптимизации повторных вызовов с теми же аргументами.

  3. Аутентификация и авторизация: Декораторы могут добавлять проверки аутентификации или авторизации к функциям.

  4. Измерение времени выполнения: Декораторы могут измерять время выполнения функций.

  5. Мемоизация: Декораторы могут сохранять результаты выполнения функций для оптимизации повторных вызовов с теми же аргументами.

  6. Web-фреймворки: Декораторы широко используются в веб-фреймворках, таких как Flask или Django, для определения маршрутов или обработчиков запросов.

Примеры встроенных декораторов в Python включают @staticmethod, @classmethod, @property, и другие. Декораторы предоставляют удобный и элегантный способ модификации поведения функций и методов в Python.

PreviousПараметризацияNextПример использования

Last updated 1 year ago