Python 2.7で、私はそれにメソッドを呼び出すときにint
をかっこで囲む必要がありますか?では、メソッドを呼び出すときに `int`を角括弧で囲む必要があるのはなぜですか?
>>> 5.bit_length()
SyntaxError: invalid syntax
>>> (5).bit_length()
3
Python 2.7で、私はそれにメソッドを呼び出すときにint
をかっこで囲む必要がありますか?では、メソッドを呼び出すときに `int`を角括弧で囲む必要があるのはなぜですか?
>>> 5.bit_length()
SyntaxError: invalid syntax
>>> (5).bit_length()
3
これはパーサーの特異性です。
Pythonが.
を見ると、小数点の検索が始まります。小数はb
なので、失敗します。
あなたが(5).bit_length()
を行う場合には、Pythonは最初は()
、およびbit_length
方法についてその後、一見の間何を解析します。
あなたがしようとした場合:
5..zzz
あなたが期待するAttributeError
を取得します。これは整数のためには機能しません:5.
はフロートです。
5.something
は浮動小数点数として解析されるためです。
値とドットの間のスペースはパーサを満足させるために '5 .bit_length()'と同じように機能します。 – Duncan