爲什麼在下面的程序中提出了IndentationError
而不是SyntaxError
?爲什麼在這裏引發IndentationError而不是SyntaxError?
>>> if True:
... print "just right!"
File "<stdin>", line 2
print "just right!"
^
IndentationError: Missing parentheses in call to 'print'
爲了確保IDLE不僅僅是很有趣,我還通過從普通源文件運行它來測試此代碼。同樣的異常類型仍在被提出。我用來測試這個版本的Python是Python 3.5.2和Python 3.6.1。
我的理解是,使用print
時丟失的括號被認爲是SyntaxError
,而不是IndentationError
。在後What does 「SyntaxError: Missing parentheses in call to 'print'」 mean in Python?頂端回答似乎也支持這一點:
「SyntaxError: Missing parentheses in call to 'print'」 is a new error message that was added in Python 3.4.2 primarily to help users that are trying to follow a Python 2 tutorial while running Python 3.
這是一個錯誤?如果是這樣,那是什麼造成的?
所以你說這是意圖行爲? –
@ChristianDean:不完全,我會看看這是否作爲bug提交。 –
_「你在這裏有兩個錯誤。」_ - 但是如果我在這裏必須有兩個錯誤,那麼Python通常不會說「在處理上述異常的過程中發生了另一個異常」? –