Ниже приведены важные факты о функциях в Python, полезные для понимания функций декораторов.
- В Python мы можем определить функцию внутри другой функции.
- В Python функция может быть передана в качестве параметра другой функции (функция также может возвращать другую функцию).
# Программа Python для демонстрации того, что функция
# может быть определен внутри другой функции, а
функция # может быть передана в качестве параметра.
# Добавляет приветственное сообщение в строку
def
messageWithWelcome (
str
):
# Вложенная функция
def
addWelcome ( ):
return
"Добро пожаловать"
# Возвращает конкатенацию addWelcome()
№ и улица
return
addWelcome ()
+
str
# Получить имя сайта, к которому добавлено приветствие
def
сайт (имя_сайта):
return
site_name
print
messageWithWelcome (site (
"GeeksforGeeks"
))
Вывод:
Добро пожаловать в Python.Engineering
Мы используем @func_name, чтобы указать декоратор, который будет применяться к другой функции.
# Добавляет приветственное сообщение в строку
# возвращается fun(). Развлекайтесь () как
# параметр и возвращайте приветствие ().
def
decor_message (забавно):
# Вложенная функция
def
addWelcome (site_name):
return
" Добро пожаловать в "
+
fun (site_name)
# Функция возврата декоратора
return
addWelcome
@ decor_message
def
site (site_name):
return
site_name;
# Код драйвера
# Этот вызов эквивалентно вызову
#decorate_message() с функцией
#site("Python.Engineering ") в качестве параметра
print
site(
"GeeksforGeeks"
)
Вывод:
Добро пожаловать to Python.Engineering
Декораторы также могут быть полезны для присоединения данных (или добавления атрибута) к функциям.
Вывод: 5 3 add() возвращает сумму аргументов x и y, переданных в качестве аргументов, но обернут в функцию декоратора, вызов add (2, 3) просто даст сумму двух чисел, но когда мы вызываем add.data, функция добавления затем передается функции декоратора ' прикрепить_данные ' в качестве аргумента, и эта функция возвращает функцию ' добавить ' с атрибутом ' данные ' установлено значение 3, и поэтому оно печатается. Декораторы Python — это мощный инструмент для устранения избыточности. |