>>> 1 .__hash__()
1
>>> 1.__hash__()
File "<stdin>", line 1
1.__hash__()
^
SyntaxError: invalid syntax
在此之前已經介紹過,第二個示例不起作用,因爲int文本實際上被解析爲float。int文字的屬性訪問
我的問題是,爲什麼不是 python解析爲一個int的屬性訪問,當解釋爲一個float是一個語法錯誤?關於lexical analysis的文檔部分似乎暗示只有在其他解釋不明確時才需要空白,但也許我錯誤地閱讀了本節。
在預感上,似乎詞法分析器是貪婪的(儘可能採用最大的標誌),但我沒有這個說法的來源。