python wraps
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python wraps相关的知识,希望对你有一定的参考价值。
用代码说明问题:
def d(f): def _d(*args, **kwargs): print f.__name__, ‘ is called‘ f(*args, **kwargs) return _d @d def test(): """function test""" print ‘test‘ if __name__==‘__main__‘: print test.__name__, " | ", test.__doc__
输出:
_d | None
可能你想要输出的是这样的:
test | function test
原因自然是函数已经发生了变化。
如果想要输出"test | function test",可以用wraps,d修改如下:
from functools import wraps def d(f): @wraps(f) def _d(*args, **kwargs): print f.__name__, ‘ is called‘ f(*args, **kwargs) return _d
即,在_d上面用wraps(f)修饰一下。
以上是关于python wraps的主要内容,如果未能解决你的问题,请参考以下文章