[英]A shorter way to express this? C = A if A else B
我發現自己重復了很多:
val = x if x else y
有時x
會深入到類或字典中的幾個級別,所以它會變得很長:
val = obj.elements[0].something if obj.elements[0].something else y
它看起來很難看,迫使我打字更多。 任何已知的縮短方法? 也許像這樣的內置存在?
val = first_try(x, y)
我想我可以很容易地寫自己的,但希望內置。
first_try = lambda x,y: x if x else y
or
運算符返回轉換為True的第一個參數:
val = x or y
例如:
>>> None or 'OK'
'OK'
這對我來說似乎是試圖讓代碼變得有點過於簡潔。 我可能會這樣做:
x = a.b.c.d[0]
val = x if x else y
一條額外的線,一次消化很少。
將getattr與可選的default
參數一起使用。 在上面的長例中,這將是:
val = getattr(obj.elements[0], 'something', y)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.