Рубрики

Декораторы функций в Python | Комплект 1 (Введение)

Фон

Ниже приведены важные факты о функциях в Python, которые полезны для понимания функций декоратора.

  1. В Python мы можем определить функцию внутри другой функции.
  2. В Python функция может быть передана в качестве параметра другой функции (функция также может возвращать другую функцию).

# Программа Python, чтобы продемонстрировать, что функция
# может быть определен внутри другой функции и
Функция # может быть передана как параметр.

  
# Добавляет приветственное сообщение в строку

def messageWithWelcome(str):

  

    # Вложенная функция

    def addWelcome():

        return "Welcome to "

  

    # Возвращаем конкатенацию addWelcome ()

    № и ул.

    return  addWelcome() + str

  
# Получить имя сайта, к которому добавлено приветствие

def site(site_name):

    return site_name

  

print messageWithWelcome(site("GeeksforGeeks"))

Выход:

Welcome to GeeksforGeeks

Функция Декоратор

Декоратор — это функция, которая принимает функцию в качестве единственного параметра и возвращает функцию. Это полезно, чтобы «обернуть» функциональность одним и тем же кодом снова и снова. Например, приведенный выше код может быть переписан следующим образом.

Мы используем @func_name, чтобы указать декоратор, который будет применен к другой функции.

# Добавляет приветственное сообщение в строку
# возвращается fun (). Веселится () как
# параметр и возвращает welcome ().

def decorate_message(fun):

  

    # Вложенная функция

    def addWelcome(site_name):

        return "Welcome to " + fun(site_name)

  

    # Декоратор возвращает функцию

    return addWelcome

  
@decorate_message

def site(site_name):

    return site_name;

  
# Код драйвера

  
# Этот вызов эквивалентен звонку
# decorate_message () с функцией
# site ("GeeksforGeeks") в качестве параметра

print site("GeeksforGeeks")

Выход:

Welcome to GeeksforGeeks

Декораторы также могут быть полезны для присоединения данных (или добавления атрибута) к функциям.

# Пример Python, чтобы продемонстрировать, что
# декораторы могут быть полезны прикрепить данные

  
# Функция декоратора для прикрепления
# данные для функции

def attach_data(func):

       func.data = 3

       return func

  
@attach_data

def add (x, y):

       return x + y

  
# Код драйвера

  
# Этот вызов эквивалентен attach_data ()
# с add () в качестве параметра

print(add(2, 3))

  

print(add.data)

Выход:

5
3

add () возвращает сумму аргументов x и y, переданных в качестве аргументов, но она заключена в функцию декоратора, вызов add (2, 3) просто даст сумму двух чисел, но когда мы вызываем add.data, тогда функция add затем передается в функцию-декоратор 'attach_data' в качестве аргумента, и эта функция возвращает функцию 'add' с атрибутом 'data', установленным в 3, и, следовательно, печатает ее.

Декораторы Python — это мощный инструмент для удаления избыточности.

Пожалуйста, обратитесь к декораторам в Python для более подробной информации.

Эта статья предоставлена Shwetanshu Rohatgi . Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме

Рекомендуемые посты:

Декораторы функций в Python | Комплект 1 (Введение)

0.00 (0%) 0 votes