Python高级编程

Python装饰器

2016-12-22  本文已影响21人  戏之地

2017.3.24更新:
** 用@wraps(func)保存元信息**
在创建装饰器的时候,一定要注意保存元信息。
在装饰器里面注解包装函数,参数为原函数

def decorator(func):
    from functools import wraps
    # 下面为重要的
    @wraps(func)
    def wrapper(*args, **kwargs):
        result = func(*args, **kwargs)
        return result

    return wrapper

@wraps(func)还有一个重要的特点:可以让你通过__wrapped__再次访问原函数。func.__wrapped__(*args,**kwargs)
下面需要注意:

原稿如下:
装饰器实质是把要装饰的对象当作一个参数传入,然后执行装饰这个函数

简单装饰器
带参数的装饰器
装饰器装饰类
类装饰器

http://blog.csdn.net/dreamcoding/article/details/8611578
http://www.cnblogs.com/huxi/archive/2011/03/01/1967600.html
http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014318435599930270c0381a3b44db991cd6d858064ac0000
http://www.cnblogs.com/huxi/archive/2011/03/01/1967600.html

https://www.zhihu.com/question/26930016
http://www.cnblogs.com/rollenholt/archive/2012/05/02/2479833.html

上一篇下一篇

猜你喜欢

热点阅读