我认为我对函数的工作原理以及如何将它们分配给变量有一个不错的理解。但是,我刚刚浏览了几个月前阅读的一些“用艰难的方式学习 Python”练习(最著名的是练习 21),并注意到有关解释器输出的一些有趣的事情。
def add(a, b):
print "ADDING %d + %d" % (a, b)
return a + b
输出:
>>> add(30, 5)
ADDING 30 + 5
35
为什么显示 35?难道您不应该为了显示返回值而编写“print add(30, 5)”吗?
>>> age = add(30, 5)
ADDING 30 + 5
>>> age
35
变量赋值看起来像是调用函数并输出打印语句而不是返回值...但是变量本身显示值 35,为什么变量赋值不这样做?
我希望这些问题是有道理的。我只是想更好地了解幕后发生的事情。如果有人有任何户外阅读,请告诉我!
最佳答案
这是因为交互式解释器会显示您键入的任何表达式的返回值。
您发布的函数有两行。在第一行中,它 print()
将值发送到标准输出。第二个返回
函数的相同值。正如我上面所说,这也被写入交互式解释器中的标准输出。
如果您要通过命令行运行脚本(即不是在交互式解释器中:
python myscript.py
您会注意到此返回值不再打印到标准输出。
关于python - 输出 : functions vs. 分配给变量的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10957892/