54

今日のコードベースの行に気付きましたが、構文エラーでビルドに失敗したと確信していましたが、テストは合格していたので、実際には有効な python でした (2.x と 3 の両方で)。

条件式で空白が必要ない場合があります。

>>> 1if True else 0
1

LHS が変数の場合は機能しません。

>>> x = 1
>>> xif True else 0
  File "<stdin>", line 1
    xif True else 0
           ^
SyntaxError: invalid syntax

ただし、他のタイプのリテラルでも機能するようです。

>>> {'hello'}if False else 'potato'
'potato'

ここで何が起こっているのか、何らかの理由で意図的に文法の一部になっているのでしょうか? この奇妙な癖は、既知の/文書化された動作ですか?

4

3 に答える 3