美文网首页
Python-装饰器

Python-装饰器

作者: Cui_Shu | 来源:发表于2022-05-29 20:41 被阅读0次

    在目标函数前后添加功能,但又不修改目标函数的定义,这种在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)

    import functools
    
    # 无参数的装饰器
    def log(func):
        # 不改变目标函数名称__name__
        @functools.wraps(func)
        def wrapper(*args, **kw):
            print('call %s():' % func.__name__)
            return func(*args, **kw)
        return wrapper
    
    # 使用方法
    @log
    def now():
        print("2022-06-01")
    
    import functools
    
    # 带参数的装饰器
    def log(text):
        def decorator(func):
            # 不改变目标函数名称__name__
            @functools.wraps(func)  
            def wrapper(*args, **kw):
                print('%s %s():' % (text, func.__name__))
                return func(*args, **kw)
            return wrapper
        return decorator
    
    # 使用方法
    @log('execute')
    def now():
        print('2015-3-25')
    

    相关文章

      网友评论

          本文标题:Python-装饰器

          本文链接:https://www.haomeiwen.com/subject/aycnprtx.html