2016-12-27 11 views
1

我最近注意到一些奇怪的東西。我輸入類似爲什麼某些內置函數的語法錯誤消息不同?

exec code 

我顯然得到了一個錯誤。有趣的是錯誤描述 - SyntaxError: Missing parentheses in call to 'exec'。我還沒有發現任何其他功能可以給出類似的細節。如果我有例如

eval code 

我得到SyntaxError: invalid syntax。所有用戶定義的函數和我發現的所有內置函數, G。 min,filter,表現相同。

這些錯誤信息爲什麼不一致?

回答

1

由於exec code是在Python 2有效的語法,但沒有在Python 3,該錯誤消息是更詳細的比一般SyntaxError,因爲它是(並且是)非常流行的(當然,如流行的exec使用)時一個是從Python 2轉換到Python 3.

在Python 3中嘗試使用print string時會出現確切錯誤(只要string已定義)。

+0

哦,我沒有想到這一點。我甚至不知道'exec'是Python 2中的關鍵字... –

相關問題