为什么2 .__添加__(3)不能在Python中工作?

Han*_*Sun 14 python methods int syntax-error

整数2有一个__add__方法:

>>> "__add__" in dir(2)
True
Run Code Online (Sandbox Code Playgroud)

...但是调用它会引发一个SyntaxError:

>>> 2.__add__(3)
  File "<stdin>", line 1
    2.__add__(3)
            ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

为什么我不能使用这个__add__方法?

unu*_*tbu 20

2.被解析为float,因此2.__add__是一个SyntaxError.

你可以评估

(2).__add__(3) 代替.


In [254]: (2).__add__(3)
Out[254]: 5
Run Code Online (Sandbox Code Playgroud)


Joh*_*ooy 5

解决2.被解析为float的另一种方法是在2和之间插入一个空格.

>>> 2 .__add__(3)
5
Run Code Online (Sandbox Code Playgroud)