題:
我知道可以只將 if 陳述句放在一行上,但有沒有辦法做到這一點,以便 PEP8 不會將其重新格式化為兩行?我知道你可以把它放在兩條線上,但這并不能回答我關于把它放在一條線上的可能性的問題。
嘗試:
if date > p1_max_date: p1_max_date = date
上面的代碼可以作業,除了 PEP8 將其重新格式化為:
if date > p1_max_date:
p1_max_date = date
我知道我可以在保存時關閉自動格式化功能,但是有沒有辦法在不關閉 PEP8 重新格式化的情況下在一行上實作相同的功能(僅在if條件為真時執行陳述句而沒有陳述句)else保存功能?
我在想一些事情:
p1_max_date = date if date > p1_max_date
但這給了我一個語法錯誤:
File "<string>", line 1
p1_max_date = date if date > p1_max_date
^
SyntaxError: invalid syntax
我也嘗試使用三元運算子,但以下嘗試均無效:
p1_max_date = date if date > p1_max_date else pass
# this doesn't work and gives me a syntax error
p1_max_date = date if date > p1_max_date else None
# this doesn't work because I don't want to change the value of the variable if the condition is false
uj5u.com熱心網友回復:
p1_max_date = date if date > p1_max_date else p1_max_date
應該這樣做。根據 and 的資料型別date,p1_max_date您還可以使用
p1_max_date = max(p1_max_date, date)
,這可能是更容易閱讀的解決方案。
uj5u.com熱心網友回復:
此任務的另一種單行方法:
p1_max_date = date > p1_max_date and date or p1_max_date
and and or支持惰性求值并可用于回傳值,在這里您可以閱讀更多關于 python 中的邏輯運算子和運算式的資訊。這是一種可讀性較差的方法,通常不受歡迎,但這是一個很好的技巧。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/449345.html
