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

时间:2012-11-15 01:52:58

标签: python methods int syntax-error

整数2有一个__add__方法:

>>> "__add__" in dir(2)
True

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

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

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

2 个答案:

答案 0 :(得分:20)

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

您可以评估

(2).__add__(3)代替。


In [254]: (2).__add__(3)
Out[254]: 5

答案 1 :(得分:5)

另一种解析2.被解析为浮点数的方法是在2.之间插入一个空格

>>> 2 .__add__(3)
5