Why doesn't 2.__add__(3) work in Python?
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
Another way to get around 2.
being parsed as a float is to insert a space between the 2
and the .
>>> 2 .__add__(3)
5