這是Python語言,但可以應用於任何語言。把錯誤代碼放在OR語句中可以嗎?
a = None
if (not a) or (a+3==5):
print("Is this okay?")
它是良好的編程習慣有a+3
if語句,即使如果a
是None
它會導致錯誤?
我依靠or
的錯誤,這似乎是一個壞主意,我的情況下,a
之前停止實際上是別的東西,不支持另外,或or
陳述(在其他語言)的外觀在兩個值。
什麼是最好的方式來編程呢?
這是Python語言,但可以應用於任何語言。把錯誤代碼放在OR語句中可以嗎?
a = None
if (not a) or (a+3==5):
print("Is this okay?")
它是良好的編程習慣有a+3
if語句,即使如果a
是None
它會導致錯誤?
我依靠or
的錯誤,這似乎是一個壞主意,我的情況下,a
之前停止實際上是別的東西,不支持另外,或or
陳述(在其他語言)的外觀在兩個值。
什麼是最好的方式來編程呢?
是的,你可以依靠短路來執行錯誤處理和驗證。
不過你的情況,你的邏輯是錯誤的,你將需要and
執行這個錯誤處理
if a and (a+3==5):
或者你甚至可以進行類型檢查
if isinstance(a, int) and (a+3==5):
這同樣會短路在閱讀+
操作之前
如果'a'爲'0',這會產生不正確的結果。我想你可能需要一個明確的'如果一個!= None'。 – TigerhawkT3
我的邏輯工作正常('不'''返回'真''所以'或''短路「),但你的更快,更容易閱讀。 –
我想指出'如果字典和字典[鍵]中的鍵是一個很常見的模式。 – NightShadeQueen
在你的例子中,不會拋出任何錯誤,因爲不是無爲真,所以if條件一旦找到1條真正的條件就立即繼續,因爲這是一條或一條語句。 –
我不知道你在用什麼,但'如果hasattr(a,'__ add __')....'可能是你想要的? – NightShadeQueen