python functools.wraps 实例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python functools.wraps 实例相关的知识,希望对你有一定的参考价值。
python functools.wraps 实例解读
1. 未使用wraps的实例
#!/usr/bin/env python # coding:utf-8
def logged(func): def with_logging(*args, **kwargs): ‘‘‘i am wraps‘s doc‘‘‘ print func.__name__ + " was called" return func(*args, **kwargs) return with_logging @logged def f(x): """i am original doc""" return x + x * x print f.__name__ # 期望的是原本的名字f,结果换成了装饰器里的新函数的名字with_logging print f.__doc__ # 期望的是原本的注释,加了个装饰器成了新加装饰器里的注释了
2. 使用了wraps的实例
from functools import wraps def logged(func): @wraps(func) def with_logging(*args, **kwargs): ‘‘‘i am wraps‘s doc‘‘‘ print func.__name__ + " was called" return func(*args, **kwargs) return with_logging @logged def f(x): """i am original doc""" return x + x * x print f.__name__ # prints ‘f‘ print f.__doc__ # prints ‘i am original doc‘
以上是关于python functools.wraps 实例的主要内容,如果未能解决你的问题,请参考以下文章