假设函数 some_descriptively_named_function
返回一个包含 4 个返回参数的 4-tuple
。我想调用 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 风格指南?
最佳答案
您的格式 LGTM,以及一些建议:
(some_desc_name1,
some_desc_name2,
some_desc_name3,
some_desc_name4) = some_descriptively_named_function()
- 把调用函数拉出来更清晰
- 不要注释解压缩的变量。
some_descriptively_named_function()
的文档字符串应该清楚地定义这些。
关于解包许多返回值时的行长度和格式的 Python 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22677078/