簡體   English   中英

單行 if/else unexpected SyntaxError

[英]One-line if/else unexpected SyntaxError

Python 單行 if/else 語句應該 function 不會引發 SyntaxError,但它們會引發一些關鍵字。

pass if arg else pass的預期結果應該類似於print('') if arg else print('') 雖然它們看起來很相似,但一個會導致語法錯誤,而另一個則不會。 為什么解釋器允許以這種方式使用某些關鍵字而不是其他關鍵字?

def foo(arg):
    #raise BaseExecption if arg else raise BaseException
    #pass if arg else pass
    print('') if arg else print('')
    
foo(True)

注意:注釋掉的代碼行將產生 SyntaxError。

pass是一個語句(特別是“簡單語句”); 這不是一個表達。 這是一個問題,因為條件表達式(“三元組”)僅適用於表達式。 這是他們在 Python 語法中的條目:

disjunction 'if' disjunction 'else' expression

除了關鍵字之外,所有部分都有表達式。

這並不是真正的問題,因為您首先濫用了條件表達式。 相反,使用完整的if語句。

暫無
暫無

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

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