4

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

some_desc_name1, some_desc_name2, some_desc_name3, some_desc_name4 = some_descriptively_named_function() 

一种选择是:

some_desc_name1, some_desc_name2, some_desc_name3, some_desc_name4 = (
    some_descriptively_named_function()
)

但是,对于四个未打包的值,即使这样也可以将其推向行长。如果我想对每一个论点做一个简短的评论,那么把它很好地展示出来并不容易。

以下工作,但目前尚不清楚这是否被认为是好的或非常坏的。

(some_desc_name1, # Comment 1
 some_desc_name2, # Comment 3
 some_desc_name3, # Comment 3
 some_desc_name4  # Comment 4
) = some_descriptively_named_function()

这对行长当然有好处,但是想一想 PEP8 如何适用于行首出现的括号就很奇怪。

是否有为此建立的(希望与 PEP8 相关的)Python 样式指南?

4

2 回答 2

5

您的 LGTM 格式,但有几个建议:

(some_desc_name1,
 some_desc_name2,
 some_desc_name3,
 some_desc_name4) = some_descriptively_named_function()
  • 拉出来让调用函数更清晰
  • 不要评论解压后的变量。的文档字符串some_descriptively_named_function()应该清楚地定义这些。
于 2016-04-27T21:52:11.560 回答
0

如果一个函数返回一个元组,那么这些值都是相关的,不需要单独注释,这是有道理的。坐在函数定义中,这种描述可能更有意义。您的第一个选项将是快速将函数结果设置为 4 个不同变量的最佳解决方案。另一种选择是简单地将整个元组用作变量:

some_desc_name1 = some_descriptively_named_function()
print some_desc_name1[0] # Comment 1
于 2014-03-27T02:27:21.097 回答