7

Я учусь программировать, и я использую Python для начала. Там, я вижу, что я могу сделать что-то вроде этого:Почему я не могу назначить печать python переменной?

>>>> def myFunction(): return 1 
>>>> test = myFunction 
>>>> test() 
1 

Однако, если я пытаюсь сделать то же самое с print он не:

>>>> test2 = print 
File "<stdin>", line 1 
    test2 = print 
      ^
SyntaxError: invalid syntax 

Почему print отличается от функции, которую я создаю ? Это использует Python v2.7.5.

ответ

18

print is a statement, а не функция. Это было changed in Python 3 частично, чтобы позволить вам делать такие вещи. В Python 2.7 вы можете получить печать как функцию, выполнив from __future__ import print_function в верхней части файла, а затем вы действительно сможете сделать test = print.

Обратите внимание, что с печатью как функцией вы больше не можете делать print x, но должны сделать print(x) (т. Е. Требуются скобки).

3

В дополнение к тому, что сказал BrenBarn о функции печати, обратите внимание, что print не вернет значение. Утверждение, конечно, никогда не вернет значение (именно поэтому вы видите эту ошибку), но даже в качестве функции вы не получите значение, которое функция печатает как возвращаемое значение.

Вместо этого print непосредственно пишет что-то на вывод , обычно консоль. Если вы хотите сохранить значение внутри переменной вместо этого, просто назначьте все, что вы хотели бы напечатать, вместо этой переменной.

Смежные вопросы