Python函数参数列表格式

sam*_*sam 45 python formatting pep8 indentation

根据PEP8格式化以下代码的最佳方法是什么:

oauth_request = oauth.OAuthRequest.from_consumer_and_token(consumer,
    token=token, verifier=verifier, http_url=ACCESS_TOKEN_URL)
Run Code Online (Sandbox Code Playgroud)

问题是如果我在第一行放置多个参数,则该行超过79个字符.如果我将每个参数放在一个带有4个空格缩进的单独行上,它看起来很丑陋:

oauth_request = oauth.OAuthRequest.from_consumer_and_token(
    consumer,
    token=token,
    verifier=verifier,
    http_url=ACCESS_TOKEN_URL)
Run Code Online (Sandbox Code Playgroud)

我想出的最佳选择是添加额外的缩进以更好地区分:

oauth_request = oauth.OAuthRequest.from_consumer_and_token(
                        consumer,
                        token=token,
                        verifier=verifier,
                        http_url=ACCESS_TOKEN_URL)
Run Code Online (Sandbox Code Playgroud)

我尝试为我制定一个通用规则,将它用于第一行长调用的方法和几个不能适合单行的参数.

cwa*_*ole 31

我阅读文档表明2和3都是可以接受的,但它看起来像2是首选(我说这是因为它看起来像2对3在这些例子中以这种方式处理,我不认为样式规范这里非常具体).1出来了(看看下面的文档Arguments on first line forbidden when not using vertical alignment)

  • 我有20年使用风格#2的历史,我可以告诉你,毫无疑问,这对我原来的眼睛来说"不那么难看".:-) (4认同)
  • 我不同意,我更喜欢3.我喜欢使连续缩进比正常的块结构缩进(4个空格)大得多,以便区分它们.通常我会用第一个参数排列持续的调用参数(在开始的paren之后).但是在这种情况下(因为没有足够的空间),延续线应该在等号后面的"oauth"一词下排列. (3认同)
  • @CoreyO.我不同意你的意见.PEP8仅在函数定义中使用时禁止#2.如果你正在调用一个已定义的函数,那么#2就完全可以了.这两种情况都在PEP8中得到证实. (2认同)