簡體   English   中英

解壓縮許多返回值時用於行長度和格式的Python樣式

[英]Python style for line length and format when unpacking many return values

假設函數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()的docstring應該清楚地定義它們。

如果一個函數返回一個元組,那么這些值都是相關的並且不需要單獨的注釋是有意義的。 在函數定義中,該描述可能更有意義。 然后,您的第一個選項將是將函數結果快速設置為4個不同變量的最佳解決方案。 另一種選擇是簡單地將整個元組用作變量:

some_desc_name1 = some_descriptively_named_function()
print some_desc_name1[0] # Comment 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM