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?
2.is parsed as a float, so2.__add__is a SyntaxError.You can evaluate
(2).__add__(3)instead.