Этот вопрос довольно долго меня прослушивал (о чем свидетельствует мой предыдущий вопрос): почему именно print(x) лучше (который определяется как более пифонический), чем print x?
Для тех, кто не знает, оператор print был изменен на функцию в Python 3.0. Официальная документация находится в PEP 3105, а мотивация находится в Guido van Rossum по электронной почте.
В те моменты я хотел бы сделать контрапункт:
- Существуют и другие операторы, такие как
import, которые мы пишем как оператор, хотя их функциональность фактически дублируется с помощью функции__import__- Для новичков оператор
printне относится к общей логике приложения. Для них это таинственный оператор, который является кульминацией их программы. Они ожидают, что он будет выглядеть по-другому. - Теперь все начинающие книги, описывающие базовый Python 2.x, гарантированно будут разбиты с первого примера. Конечно, языки иногда меняются, но эти изменения обычно менее заметны для новичков.
- Мне сразу не кажется очевидным, что функциональность
printможно дублировать на уровне приложения. Например, иногда я хотел бы перенаправить печать с консоли в виде модального диалогового окна ОС. - В то время как люди говорят, что сложно переписать все операторы
printв функцию, они заставили каждого разработчика Python 2.x делать именно это для всех своих проектов. Хорошо, это не сложно с автоматическим преобразователем. - Каждый, кому нравится иметь возможность манипулировать функцией
print, будет столь же хорошо обслуживаться, еслиprint- это функция обертки оператора__print__.
- Для новичков оператор
Итак, можем ли мы ответить каноническим ответом на этот вопрос на страницах?