📜  Python中的嵌套装饰器

📅  最后修改于: 2022-05-13 01:54:29.626000             🧑  作者: Mango

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

解释 :

  1. 我们首先定义了两个装饰器,它们用于将装饰函数的输出字符串包装在HTML 的“强”和“斜体”标签中。
  2. 然后我们将这两个装饰器应用到我们的'introduction'函数中,只使用一个“@”和函数名。例如在这个程序中,我们使用@italic 和@strong。
  3. 它遵循的层次结构是从下到上。因此,根据它,字符串首先用“strong”包裹,然后用“italic”包裹。