Python中的嵌套装饰器
Python中的一切都是对象。 Even 函数是Python中的一种对象。装饰器是一种特殊类型的函数,它返回一个包装函数。它们在Python中被认为非常强大,用于临时修改函数的行为而不改变其实际值。
嵌套意味着放置或存储在另一个内部。因此,嵌套装饰器意味着在一个函数中应用多个装饰器。 Python允许我们为一个函数实现多个装饰器。它使装饰器可用于可重用的构建块,因为它将几种效果累积在一起。
如何应用几个装饰器?
一个函数可以被多次修饰。我们需要首先定义要包装输出字符串的装饰器,然后使用 '@' 将它们应用于函数。只需将装饰器放在所需的函数之上。
句法 :
@function1
@function2
def function(name):
print(f"{name}")
嵌套装饰器遵循从下到上的方法,即相反的顺序。它可以与建筑物的建造有关,我们从底部(地面)开始建造,然后开始建造地板。
例子 :
Python3
# Python program to demonstrate
# nested decorators
def italic(func):
def wrapper():
return '' + func() + ''
return wrapper
def strong(func):
def wrapper():
return '' + func() + ''
return wrapper
@italic
@strong
def introduction():
return 'This is a basic program'
print(introduction())
输出:
This is a basic program
解释 :
- 我们首先定义了两个装饰器,它们用于将装饰函数的输出字符串包装在HTML 的“强”和“斜体”标签中。
- 然后我们将这两个装饰器应用到我们的'introduction'函数中,只使用一个“@”和函数名。例如在这个程序中,我们使用@italic 和@strong。
- 它遵循的层次结构是从下到上。因此,根据它,字符串首先用“strong”包裹,然后用“italic”包裹。