#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), но результат будет числом с плавающей точкой, обычно это не то что требуется.
Комментариев нет:
Отправить комментарий