Ответ 1
2.
анализируется как float, поэтому 2.__add__
- это SyntaxError.
Вы можете оценить
(2).__add__(3)
.
In [254]: (2).__add__(3)
Out[254]: 5
Целое число 2
имеет метод __add__
:
>>> "__add__" in dir(2)
True
... но вызов вызывает синтаксисError:
>>> 2.__add__(3)
File "<stdin>", line 1
2.__add__(3)
^
SyntaxError: invalid syntax
Почему я не могу использовать метод __add__
?
2.
анализируется как float, поэтому 2.__add__
- это SyntaxError.
Вы можете оценить
(2).__add__(3)
.
In [254]: (2).__add__(3)
Out[254]: 5
Другой способ обойти 2.
, который обрабатывается как float, - это вставить пробел между 2
и .
>>> 2 .__add__(3)
5