站长网 语言 为什么在Python代码中装饰器很关键

为什么在Python代码中装饰器很关键

要理解什么是装饰器,您首先需要熟悉Python处理函数的方式。从它的观点来看,函数和对象没有什么不同。它们有属性,可以重新分配: deffunc(): print(hellofromfunc) func() hellofromfunc new_func=func new_func() hellofromfunc print(new_func.__name__

要理解什么是装饰器,您首先需要熟悉Python处理函数的方式。从它的观点来看,函数和对象没有什么不同。它们有属性,可以重新分配:

def func():  

  print('hello from func')  

func()  

> hello from func  

new_func = func  

new_func()  

> hello from func  

print(new_func.__name__)  

> func 

此外,你还可以将它们作为参数传递给其他函数:

def func():  

  print('hello from func')  

def call_func_twice(callback):  

  callback()  

  callback()  

call_func_twice(func)  

> hello from func  

> hello from func 

现在,我们介绍装饰器。装饰器(decorator)用于修改函数或类的行为。实现这一点的方法是定义一个返回另一个函数的函数(装饰器)。这听起来很复杂,但是通过这个例子你会理解所有的东西:

def logging_decorator(func): 

  def logging_wrapper(*args, **kwargs): 

    print(f'Before {func.__name__}') 

    func(*args, **kwargs) 

    print(f'After {func.__name__}') 

  return logging_wrapper 

     

@logging_decorator 

def sum(x, y): 

  print(x + y) 

   

sum(2, 5) 

> Before sum 

> 7 

> After sum 

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/biancheng/yuyan/2021/0602/8744.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部