<p>对于<a href="http://www.wikiwand.com/en/Partial_application" rel="nofollow noreferrer">partial function application</a>,我知道在Python中有几种方法可以做到这一点。但是,它们似乎没有保留原始函数的docstring。在</p>
<p>以<code>functools.partial</code>为例:</p>
<pre><code>from functools import partial
def foo(a, b, c=1):
"""Return (a+b)*c."""
return (a+b)*c
bar10_p = partial(foo, b=10)
print bar10_p.__doc__
partial(func, *args, **keywords) - new function with partial application
of the given arguments and keywords.
</code></pre>
<p>让我们试试<a href="https://github.com/kachayev/fn.py" rel="nofollow noreferrer">fn.py</a>:</p>
^{pr2}$
<p>有没有Python包/模块提供部分应用程序的保留docstring?在</p>
<h2>更新</h2>
<p>正如<a href="https://stackoverflow.com/users/1340389/kevin">@Kevin</a>和<a href="https://stackoverflow.com/users/100297/martijn-pieters">@Martijn Pieters</a>所述,函数签名已更改,因此不建议坚持原始函数的docstring。我意识到我正在寻找一个更新的docstring,其中包含<code>foo() with a default b value of 10</code>(感谢Kevin简单而直接的示例)。在</p>
<p>只需编写一个新的<code>__doc__</code>。在</p>
<pre><code>bar10_p = partial(foo, b=10)
bar10_p.__doc__ = """foo() with a default b value of 10.
See foo().
"""
</code></pre>
<p>您的函数具有与原始函数不同的接口,因此它不应完全复制docstring。在</p>