Страницы

Поиск по вопросам

пятница, 9 ноября 2018 г.

Python. Чем на самом деле является print?

Почему функция/оператор/набор символов (или что оно на самом деле) print не может работать в выражениях?
Python 2.7.9 (default, Jun 29 2016, 13:08:31) [GCC 4.9.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> print('hahaha') hahaha >>> 0 or print('hahaha') File "", line 1 0 or print('hahaha') ^ SyntaxError: invalid syntax >>> def test(): print('hahaha') ... >>> 0 or test() hahaha >>>


Ответ

В Python 2.X print является ключевым словом (вроде return во многих языках), по этому после него выражение не обязательно должно быть заключено в скобки. И оно не является функцией и не может возвращать значения (даже None). По этому оно не может быть частью логического выражения:
0 or return("hahaha")
В Pyton 3.X это фнукция. По этому там требуется ее аргументы заключать в скобки, и она возвращает None (который в логическом контексте действует как False), по этому такое логическое выражение не вызовет ошибок.

Комментариев нет:

Отправить комментарий