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, 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
来源:https://stackoverflow.com/questions/13390458/why-doesnt-2-add-3-work-in-python