将print语句分配给Python 2.7中函数中的变量

时间:2015-03-17 11:25:12

标签: python function variables printing variable-assignment

我正在尝试将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

有任何解释吗?

3 个答案:

答案 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这是打印功能的返回值