我正在尝试将print语句分配给函数中的变量:
def namer(fn, ln='Smith'):
# return value, default value
r = print "Your name is ", fn, ln
return r
但是当我运行该模块时,它说:
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
import m8
File "m8.py", line 3
r = print "Your name is ", fn, ln
^
SyntaxError: invalid syntax
有任何解释吗?
答案 0 :(得分:1)
如您所述,在Python2.x中,print
是一个声明。语句不是一个对象,你不能将它分配给任何东西,你可以只执行它。
为什么要返回print
声明?为什么不打印字符串或调用时会执行print语句的函数?
答案 1 :(得分:0)
print语句仅将值打印到显示器。将它分配给变量没有任何意义。
如果您的代码是将字符串存储在变量r中,那么:
r =“你的名字是”+ fn +“”+ ln
如果fn是字符串,则可以使用,如果不是:
r =“你的名字是”+ str(fn)+“”+ ln
答案 2 :(得分:0)
虽然分配print语句没有意义,但将print函数赋值给变量是有意义的。
在这种情况下,您需要使用以下导入(仅当使用python 2时)
from __future__ import print_function
可能的用例
import logging
use_print = True
if use_print:
log_fun = print
else:
log_fun = logging.info
log_fun('Spam')
以下陈述在语法上也是正确的,但没有意义
r = print('Something')
您将最终打印“Something”并将None
指定给r
这是打印功能的返回值