解包许多返回值时行长度和格式的 Python 样式

ely*_*ely 4 python pep8 argument-unpacking iterable-unpacking

假设该函数some_descriptively_named_function返回 4- tupleof 4 个返回参数。我想调用some_descriptively_named_function,遵守 80 个字符的行长度限制,并将所有 4 个输出解压缩到一个描述性命名的变量中:

some_desc_name1, some_desc_name2, some_desc_name3, some_desc_name4 = some_descriptively_named_function() 
Run Code Online (Sandbox Code Playgroud)

一种选择是:

some_desc_name1, some_desc_name2, some_desc_name3, some_desc_name4 = (
    some_descriptively_named_function()
)
Run Code Online (Sandbox Code Playgroud)

但是,对于四个未打包的值,即使这样也可以推动它的行长。如果我想对每个论点做一个简短的评论,要很好地阐述它并不容易。

以下工作,但不清楚这是否被认为是好的或非常糟糕。

(some_desc_name1, # Comment 1
 some_desc_name2, # Comment 3
 some_desc_name3, # Comment 3
 some_desc_name4  # Comment 4
) = some_descriptively_named_function()
Run Code Online (Sandbox Code Playgroud)

这对于行长当然很好,但是尝试考虑 PEP8 如何适用于发生在行首的括号是很奇怪的。

是否有一个既定的(希望与 PEP8 相关的)Python 风格指南?

Bol*_*ain 5

您的格式 LGTM,但有一些建议:

(some_desc_name1,
 some_desc_name2,
 some_desc_name3,
 some_desc_name4) = some_descriptively_named_function()
Run Code Online (Sandbox Code Playgroud)
  • 拉出来让调用函数更清晰
  • 不要评论解压的变量。的文档字符串some_descriptively_named_function()应该清楚地定义这些。