Why doesn't 2.__add__(3) work in Python?
int, methods, python, syntax-error
Solution
`2.` is parsed as a float, so `2.__add__` is a SyntaxError.
You can evaluate
`(2).__add__(3)` instead.
In [254]: (2).__add__(3)
Out[254]: 5
Problem
The integer `2` has an `__add__` method: ``` >>> "__add__" in dir(2) True ``` ... but calling it raises a SyntaxError: ``` >>> 2.__add__(3) File "<stdin>", line 1 2.__add__(3) ^ SyntaxError: invalid syntax ``` Why can't I use the `__add__` method?