Этот вопрос довольно долго меня прослушивал (о чем свидетельствует мой предыдущий вопрос): почему именно 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__
.
- Для новичков оператор
Итак, можем ли мы ответить каноническим ответом на этот вопрос на страницах?