在哪里可以找到函数的 kwargs/args 文档

Ham*_*mza 5 python matplotlib request pandas data-science

大多数库(如请求或 matplotlib)不包含正确的 kwargs/args 文档。有时会有示例,但大多数情况下缺少特定用例。

我的问题:

  1. 我在哪里可以找到那种信息。
  2. 为什么开发人员没有正确记录 kwargs/args

Car*_*ate 4

我只是在很多类似的情况下尝试找到来源。通常,如果没有记录,参数将被传递给一些较低级别的函数。一旦您知道高级函数遵循哪个低级函数,其目的就会更有意义。

例如,查看 的文档requests.request。正如您所提到的,它表明该方法需要 a kwargs,但没有提及它的用途。然而,它确实为我们提供了一个方便的源链接,其中显示:

def request(method, url, **kwargs):
    . . .
    with sessions.Session() as session:
        return session.request(method=method, url=url, **kwargs)
Run Code Online (Sandbox Code Playgroud)

所以,我们可以看到它是sessions' 实例方法 的一个相当薄的包装器request,它只是向下传递kwargs

如果我们检查该方法的来源怎么办?:

def request(self, method, url,
            params=None, data=None, headers=None, cookies=None, files=None,
            auth=None, timeout=None, allow_redirects=True, proxies=None,
            hooks=None, stream=None, verify=None, cert=None, json=None):
    . . .
Run Code Online (Sandbox Code Playgroud)

我们可以看到 得到kwargs扩展,并且预计将成为这些参数之一。此时,我们可以检查该方法的文档,以更好地了解每个参数的作用。

我会注意到,如果您使用 Pycharm,您可以在符号上方ctrl+ +b跳转到其源,因此您甚至不需要追踪源来进行任何侦查。


为什么不记录它们呢?人们在写东西时很懒并且/或错过了重要的细节。他们可能认为这是“足够直观的”,没有必要记录每个细节。谁知道。有时,对于某些细节,阅读源代码比阅读文档学到的更多。