您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:Python装饰器的应用场景及实例用法

51自学网 2021-10-30 22:44:14
  python
这篇教程Python装饰器的应用场景及实例用法写得很实用,希望能帮到您。

1、说明

装饰本质上是一个Python函数,它能使其他函数在没有任何代码变化的情况下增加额外的功能。有了装饰,我们可以抽出大量与函数功能无关的相同代码,继续重用。

2、应用场景

包括插入日志、性能测试、事务处理、缓存和权限验证。

3、实例

# 装饰器# func指函数def decorator(func):    def wrapper(*args, **kwargs):        # 执行函数内部逻辑 打印时间        print(time.time(), args, kwargs)        # 执行调用函数中逻辑 打印不同参数        func(*args, **kwargs)    return wrapper# 一个参数@decoratordef function(param):    print('function : this is decorator ' + param)# 两个参数@decoratordef function1(param1, param2):    print('function1 : this is decorator ' + param1)    print('function1 : this is decorator ' + param2)# 三个参数(可变参数)@decoratordef function2(param1, param2, **kwargs):    print('function2 : this is decorator ' + param1)    print('function2 : this is decorator ' + param2)    print(kwargs)function('param')function1('param1' , 'param2')function2('param1' , 'param2', x=1,y=2,z=3)

内容扩展:

函数注册表

简单注册表

funcs = []def register(func):  funcs.append(func)  return func    @registerdef a():  return 3  @registerdef b():  return 5  # 访问结果result = [func() for func in funcs]

注册表隔离(使用类的不同实例)

class Registry(object):  def __init__(self):    self._funcs = []    def register(self, func):    self._funcs.append(func)      def run_all(self):    return [func() for func in self._funcs] r1 = Registry()r2 = Registry()@r1.registerdef a():  return 3  @r2.registerdef b():  return 5  @r1.register@r2.register

到此这篇关于Python装饰器的应用场景及实例用法的文章就介绍到这了,更多相关Python装饰器的应用场景内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


使用Python自动化Microsoft Excel和Word的操作方法
python 计算t分布的双侧置信区间
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。