python - 输出 : functions vs. 分配给变量的函数

标签 python function variable-assignment function-calls

我认为我对函数的工作原理以及如何将它们分配给变量有一个不错的理解。但是,我刚刚浏览了几个月前阅读的一些“用艰难的方式学习 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/

相关文章:

python - 输入溢出

c++ - 函数内存管理C++

Javascript 多变量赋值

r - 使用`assign()`为列表项赋值

c++ - 如何||和 && 作品

python - 离群点检测中的隔离森林与稳健随机切割森林

python - 如何将自定义 Openai 健身房环境与 Openai 稳定基线 RL 算法结合使用?

python - 在 django 模板中渲染 Bokeh 小部件

c++ - 我们可以有一个具有多种返回类型的函数吗? (C++11 及以上版本)

javascript - 在没有接收器的情况下调用 javascript 函数