#python #python_3x
Вопрос особого практического смысла не имеет, просто стало любопытно, почему в Python
нельзя вызвать метод напрямую у числа? Например, я могу сделать это со строкой:
'3'.__add__('4') # 34
Или со списком:
[].__add__([3]) # [3]
Но не могу сделать так с числом:
3.__add__(4) # SyntaxError: invalid syntax
При этом я могу записать 3 в переменную и тогда все, естественно, ок:
x = 3
x.__add__(4) #7
Ответы
Ответ 1
Потому что с точки зрения парсера у вас написано число (float) 3., а за ним вызов __add__(4) и получается синтаксическая ошибка. Нужно объяснить парсеру, что вы вовсе не имели в виду число 3., например заключив число в скобки или поставив пробел перед точкой: >>> (3).__add__(4) 7 >>> 3 .__add__(4) 7 Ещё один вариант 3..__add__(4) (= 7.0), но результат будет числом с плавающей точкой, обычно это не то что требуется.
Комментариев нет:
Отправить комментарий