Tim*_*lin 3 python documentation docstring
我的代码看起来像这样:
constString = """
Default docstring info:
1
2
3"""
class A():
def A1():
"""
First unique docstring.
"""
pass
def A2():
"""
Second unique docstring.
"""
pass
B = A()
print(B.A1.__doc__)
Run Code Online (Sandbox Code Playgroud)
如果我运行此代码,我会重新输出:
First unique docstring.
Second unique docstring.
Run Code Online (Sandbox Code Playgroud)
但是我想通过为类A中的所有方法添加constString来替换方法的docstring.输出必须如下所示:
First unique docstring.
Default docstring info:
1
2
3
Second unique docstring.
Default docstring info:
1
2
3
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做?
函数文档字符串是可写的; 只分配给function.__doc__; 这是一个装饰器,它将一个字符串添加到类的所有方法的docstring中:
import inspect
def add_documentation(doc):
if not doc.startswith('\n'):
doc = '\n' + doc
def decorator(cls):
for func in filter(inspect.isfunction, vars(cls).values()):
func.__doc__ += doc
return cls
return decorator
Run Code Online (Sandbox Code Playgroud)
像这样使用:
@add_documentation(constString)
class A:
def A1(self):
"""
First unique docstring.
"""
pass
def A2(self):
"""
Second unique docstring.
"""
pass
Run Code Online (Sandbox Code Playgroud)
装饰器在Python 2和3中都有效,只会影响直接在类上定义的方法,而不会影响任何基类.