在python中使用装饰器预先添加函数docstring

Ste*_* Lu 1 python docstring decorator

你怎么能用装饰器添加函数docstring?

def g(func):
    someOtherDocString = "That is great"
    def wrap(*args, **kwargs):
        func(*args, **kwargs)
return wrap

@g
def f():
""" This is awesome """
Run Code Online (Sandbox Code Playgroud)

结果:

>>>help(f)

Help on function f in module __main__:

f()
    That is great
    That is awesome
Run Code Online (Sandbox Code Playgroud)

所有的帮助将不胜感激.

Art*_*nka 5

你尝试过魔术吗__doc__:

from functools import wraps

def g(func):
    func.__doc__ = "That is great" + func.__doc__

    @wraps(func)
    def wrap(*args, **kwargs):
        return func(*args, **kwargs)

    return wrap
Run Code Online (Sandbox Code Playgroud)