• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Python装饰器的应用场景及实例用法

    1、说明

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

    2、应用场景

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

    3、实例

    # 装饰器
    # func指函数
    def decorator(func):
        def wrapper(*args, **kwargs):
            # 执行函数内部逻辑 打印时间
            print(time.time(), args, kwargs)
            # 执行调用函数中逻辑 打印不同参数
            func(*args, **kwargs)
        return wrapper
    # 一个参数
    @decorator
    def function(param):
        print('function : this is decorator ' + param)
    # 两个参数
    @decorator
    def function1(param1, param2):
        print('function1 : this is decorator ' + param1)
        print('function1 : this is decorator ' + param2)
    # 三个参数(可变参数)
    @decorator
    def 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    
    @register
    def a():
      return 3
      
    @register
    def 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.register
    def a():
      return 3
      
    @r2.register
    def b():
      return 5
      
    @r1.register
    @r2.register

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

    您可能感兴趣的文章:
    • 详解Python装饰器之@property
    • python 装饰器的使用与要点
    • python高级语法之闭包和装饰器详解
    • Python pytest装饰器总结(实例详解)
    • python基础之装饰器详解
    • Python 的lru_cache装饰器使用简介
    • Python 中@lazyprop 装饰器的用法
    上一篇:使用Python自动化Microsoft Excel和Word的操作方法
    下一篇:python 计算t分布的双侧置信区间
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Python装饰器的应用场景及实例用法 Python,装饰,器,的,应用,场景,