Когда я пытаюсь использовать print
без круглых скобок на простое имя в Python 3.4, я получаю:
>>> print max
Traceback (most recent call last):
...
File "<interactive input>", line 1
print max
^
SyntaxError: Missing parentheses in call to 'print'
Хорошо, теперь я понял, я просто забыл портировать мой код Python 2.
Но теперь, когда я пытаюсь напечатать результат функции:
>>> print max([1,2])
Traceback (most recent call last):
...
print max([1,2])
^
SyntaxError: invalid syntax
Или же:
print max.__call__(23)
^
SyntaxError: invalid syntax
(Обратите внимание, что курсор указывает на символ перед первой точкой в этом случае.)
Сообщение отличается (и немного вводит в заблуждение, поскольку маркер ниже max
).
Почему Python не может обнаружить проблему раньше?
Примечание. Этот вопрос был вызван путаницей вокруг этого вопроса: Pandas read.csv синтаксическая ошибка, когда несколько экспертов Python пропустили реальную проблему из-за ошибочного сообщения об ошибке.