python wrapps.who可以举个例子

zjm*_*126 2 python

from functools import  wraps

def a():
    a='aa'
def b():
    b="bbb"

c=wraps(a)(b)
print c#what happen?
Run Code Online (Sandbox Code Playgroud)

什么是包裹意味着,例子是最好的.

Tim*_*ker 7

引自文档:

functools.wraps(wrapped[, assigned][, updated]) 
Run Code Online (Sandbox Code Playgroud)

这是一个便利函数,用于partial(update_wrapper, wrapped=wrapped, assigned=assigned, updated=updated)在定义包装函数时调用函数装饰器.例如:

>>> from functools import wraps
>>> def my_decorator(f):
...     @wraps(f)
...     def wrapper(*args, **kwds):
...         print 'Calling decorated function'
...         return f(*args, **kwds)
...     return wrapper
...
>>> @my_decorator
... def example():
...     """Docstring"""
...     print 'Called example function'
...
>>> example()
Calling decorated function
Called example function
>>> example.__name__
'example'
>>> example.__doc__
'Docstring'
Run Code Online (Sandbox Code Playgroud)

如果不使用这个装饰器工厂,示例函数的名称将是'wrapper',原始example()的docstring将丢失.