4

重複の可能性:
Python int リテラル メソッドへのアクセス
Integer リテラルは Python のオブジェクトですか?

Python では、メソッドを呼び出したり、リテラルで直接属性を検索したりすることが可能であり、時には一般的です:

>>> "-".join("abc")
'a-b-c'
>>> {1: 3, 2: 9}.pop(1)
3
>>> 3j.imag
3.0
>>> 8.0.__add__(8)
16.0

しかし、何らかの理由で、これは整数オブジェクトでは機能しません:

>>> 3.__add__(42)
  File "<stdin>", line 1
    3.__add__(42)
            ^
SyntaxError: invalid syntax

なぜだめですか?

4

1 に答える 1

8

スタック オーバーフローの質問を入力し始めるときはよくあることですが、調べているうちに自分で答えの可能性を見つけます。さて、今日はとにかく質問を投稿しています。答えは次のとおりです。

.はパーサーによって小数点として解釈されるため、整数に対しては機能しません。float の例が機能するのは、2 番目のピリオドが属性ルックアップでなければならないことをパーサーが認識しているためです。この場合、あいまいさはありません。

于 2012-10-22T12:26:46.427 に答える