📜  Python – 饼图语法 (@)

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

Python – 饼图语法 (@)

装饰器是一个可调用对象,用于扩展其他可调用对象的功能。简单来说,它允许你用另一个函数。在这种情况下,“@”符号有时被称为装饰器的饼图语法。 pie 语法使其更易于访问和扩展。

因为,我们已经使用 staticmethod() 和 classmethod() 进行了装饰。因此,一个函数定义可以由一个或多个装饰器表达式包装。在定义函数时,在包含函数定义的范围内评估装饰器表达式。结果必须是可调用的,以函数对象作为唯一参数调用。返回值绑定到函数名而不是函数对象。可以以嵌套方式应用多个装饰器。

句法:

(Pie_syntax) 
any_callable

例子:

对于重复赋值和调用语句似乎无用的情况,pie 语法就是救星。我们可以在@ 符号后命名装饰函数,并将其放在要装饰的函数之前。

以下程序将帮助您更好地理解这一点:

方案一:

Python3
# defining the decorator
def decor(func):
    print("#----------------#")
    func()
    print("#----------------#")
  
# using the decorator
@decor
def main():
    print("$ GeeksforGeeks $")
  
if __name__ == 'main':
    main()


Python3
# defining the 1st decorator
def decor1(func):
    print("_________________")
  
# defining the 2nd decorator
def decor2(func):
    print("$****************$")
    func()
    print("$****************$")
  
# using the decorator
@decor1
@decor2
def main():
    print("$ GeeksforGeeks  $")
  
# Driver program to test the code
if __name__ == 'main':
    main()


输出:

链饼语法

我们也可以在一个函数中有多个装饰器,不一定只有一个但是,记住装饰器的顺序很重要。调用装饰器的顺序将直接影响输出。

方案二:

蟒蛇3

# defining the 1st decorator
def decor1(func):
    print("_________________")
  
# defining the 2nd decorator
def decor2(func):
    print("$****************$")
    func()
    print("$****************$")
  
# using the decorator
@decor1
@decor2
def main():
    print("$ GeeksforGeeks  $")
  
# Driver program to test the code
if __name__ == 'main':
    main()

输出: