簡體   English   中英

在Python中使用Bash $ {var:-default}等價物?

[英]Bash ${var:-default} equivalent in Python?

執行默認變量替換的最簡單方法是什么?

x = None
... (some process which may set x)
if x is None: use_x = "default"
else:         use_x = x

有沒有辦法在一行中寫這個?

您可以使用條件表達式

use_x = "default" if x is None else x

你可以使用dict默認為x如果鍵不存在以類似於bash語法但條件將是慣用的方式:

use_x = {None: "default"}.get(x, x)

您可以使用

x = x or "default"

在Python中。 這不完全相同,因為它依賴於Python對真值的定義,這與Bash對set和unset值的區別不同。 但這是一個近似的近似和慣用的 Python方法,解決了測試未設置值的相同的一般問題。

如果您對僅替換None特別感興趣,那么此代碼將產生錯誤的結果,而Padraic的解決方案更合適。

暫無
暫無

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

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