В Python 2.x print
на самом деле является специальным оператором, а не функцией *.
Вот почему его нельзя использовать, например: lambda x: print x
Примечание(expr)
не создает кортеж (это приводит к expr
), но ,
создает.Это, вероятно, приводит к путанице между print (x)
и print (x, y)
в Python 2.7
(1) # 1 -- no tuple Mister!
(1,) # (1,)
(1,2) # (1, 2)
1,2 # 1 2 -- no tuple and no parenthesis :) [See below for print caveat.]
Однако, поскольку print
представляет собой специальный синтаксический оператор / конструкцию грамматики в Python 2.x затем без скобок он обрабатывает ,
особым образом - и не создает кортеж.Эта специальная обработка оператора print
позволяет ему действовать по-другому, если есть конечный код ,
или нет.
Счастливое кодирование.
* Такое поведение print
вPython 2 может быть изменен на Python 3:
from __future__ import print_function