【发布时间】:2018-05-11 00:47:39
【问题描述】:
我想以编程方式更改我的一些函数中的文档字符串。我希望更新的文档字符串显示在 Visual Studio 代码中。这可能吗?例如,假设我有这个装饰器:
def wraps(m, sep="\n"):
"""
Use another function's docstring
"""
def _decorator(func):
if func.__doc__ is None:
func.__doc__ = m.__doc__
else:
func.__doc__ = sep.join([func.__doc__, m.__doc__])
return func
return _decorator
但是,这些不适用于 VS 代码智能感知。有没有办法做到这一点?
编辑:如果需要,functools.wraps 可以,但也不支持。示例函数:
@wraps(core.otherfunc)
def newfunc(base, **kwargs):
"""Returns data from :func:`~core.otherfunc`"""
return core.otherfunc(base, **kwargs)
谢谢!
【问题讨论】:
-
你真的需要连接位而不是替换吗?因为如果没有,您可以只使用标准库之外的
functools.wraps,并且至少一些 IDE/插件有特殊的外壳。 (我不知道用于 VSCode 的 ms-python 是否可以,但如果可以接受,它可能值得测试。)