【问题标题】:Peculiar signature generated by sphinx-autodocsphinx-autodoc 生成的特殊签名
【发布时间】:2012-03-19 13:51:36
【问题描述】:

我有以下函数定义(此示例简化了文档字符串):

def ui(*classes, call_init=False):
    'create a metaclass based on *classes*'
    ...

当我使用 sphinx-autodoc(特别是 automodule)创建文档时,它会为此函数生成以下签名

ui(call_init, *classes)

谁能解释为什么 sphinx-autodoc 以错误的方式获取签名?另外,有没有办法让它包含 *call_init* 的默认值?

【问题讨论】:

  • 签名有效(我已经运行了这个函数,所以我确定),它只是意味着命名参数只是关键字。
  • 呃,对,这只是 python 2 中的一个语法错误。我会将此报告为 Sphinx 中的错误;它显然不知道 Python 3 中的这种用法,因此为您重新订购。
  • 啊,是的。我忘记了 python2 不支持该语法。谢谢。
  • fyi,似乎是一个已经报告的错误,有一个可用的补丁:bitbucket.org/birkenfeld/sphinx/issue/828/…
  • Wooble,您愿意将其重新发布为答案吗?因为它是一个。 ;)

标签: python python-3.x python-sphinx


【解决方案1】:

根据 Wooble 在问题上提出的 cmets,这是 python 2/python 3 的区别。并且已经有一个带有可用补丁的错误报告:https://bitbucket.org/birkenfeld/sphinx/issue/828/autodoc-python3-keyword-only-arguments

【讨论】:

  • 注意:我把它变成了一个“社区 wiki”,因为它确实是 Wooble 的答案,而不是我的(我不会通过这种方式获得任何不应得的声誉积分)。我只是想把它变成一个答案(如 Marius 所建议的),以便它可以被接受。这样这个问题就不会因为没有答案而徘徊:-)
猜你喜欢
  • 2011-04-10
  • 1970-01-01
  • 1970-01-01
  • 2021-07-13
  • 1970-01-01
  • 2023-03-16
  • 2012-02-09
  • 2012-05-09
相关资源
最近更新 更多