如何用EpyText标签为多函数参数设置相同描述并优化IDE显示?
问题
在PyCharm这类支持函数悬停显示帮助的IDE中,使用EpyText标签编写Python函数文档字符串时,希望避免为多个参数重复编写相同描述(比如示例中a、b、c、d参数的维度描述),想知道能否通过标签将多个参数关联到同一描述,比如写成@param a,b,c,d: integer along the corresponding dimension.的形式,简化代码的同时,让IDE悬停帮助里这些参数同列一行、只显示一次描述,也可以考虑EpyText的替代方案。
原写法示例
def myfunc(a, b, c, d): """ @param a: integer along the "a" dimension. @param b: integer along the "b" dimension. @param c: integer along the "c" dimension. @param d: integer along the "d" dimension. """ pass
期望写法示例(暂无法正常渲染)
def myfunc(a, b, c, d): """ @param a,b,c,d: integer along the corresponding dimension. """ pass
解决方案
关于EpyText的直接支持
EpyText本身不支持在单个@param标签中罗列多个参数的写法,这种语法不符合EpyText规范,PyCharm等IDE也无法正确解析,悬停时不会按预期显示参数描述。
替代方案
如果想要简化多参数文档编写,同时保证IDE正常解析,可考虑以下主流文档字符串风格:
1. Google风格文档字符串
支持同类型参数分组描述,PyCharm完全兼容解析,悬停时会将参数放在同一组下共享描述:
def myfunc(a, b, c, d): """ Args: a, b, c, d: integer along the corresponding dimension. """ pass
2. NumPy风格文档字符串
同样支持参数分组,适合科学计算类代码,IDE解析友好:
def myfunc(a, b, c, d): """ Parameters ---------- a, b, c, d : int integer along the corresponding dimension. """ pass
3. EpyText折衷写法
若必须使用EpyText,可通过简化描述减少重复,但无法实现单个标签关联多参数:
def myfunc(a, b, c, d): """ @param a: integer along the corresponding dimension (a维度) @param b: 同上 @param c: 同上 @param d: 同上 """ pass
不过这种写法不如前两种简洁,也无法实现悬停时参数同列一行的效果。
内容的提问来源于stack exchange,提问作者MCornejo
相关产品推荐
相关产品推荐

