Python-装饰器

在目标函数前后添加功能,但又不修改目标函数的定义,这种在代码运行期间动态增加功能的方式,称之为“装饰器”(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')
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 之前写Flask应用的时候就用过,但是无奈那时候水平太低,还没有研究到这里。最近我就决定把Python的这些高级概...
    KevinCool阅读 3,582评论 0 0
  • 一、前言 python装饰器本质上就是一个函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外的功能,装饰...
    冲锋丘丘人阅读 2,738评论 0 0
  • 装饰器 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返...
    时间之友阅读 6,936评论 0 3
  • 什么是装饰器? 我们先了解一下基本概念:它的本质就是一个函数,可以让其他函数在不需要做任何代码变动的前提下增...
    独孤蝴蝶阅读 1,639评论 0 1
  • 说到装饰器,很明显就是用来装饰的,既然是要装饰,那肯定是在保留原有的基础上再添加一些东西作为装饰,这就是我对装饰器...
    张氏小毛驴阅读 1,805评论 0 0

友情链接更多精彩内容