首页 > 解决方案 > 如何将结果从一个函数传递到另一个函数

问题描述

您好,请考虑以下部分代码:

'def sum(ab,bc):
    cd = ab + bc
    return cd

ab = 5
bc = 6

sum(ab,bc)
print(cd)'

当我运行这部分代码时,我得到的结果是:

NameError:名称“cd”未定义

但是 cd 是 Sum 函数的结果不是吗?那么为什么没有定义呢。

其次,如何将 sum 函数的结果传递给另一个函数。例如,假设我还有一个 diff 函数:

def diff (x,y):
    ef = x - y
    return ef

diff(cd,3)'

当我运行这部分代码时,我也有结果 cd 没有定义。但是 cd 是我之前的 sum 函数的结果,不是吗?

标签: ipython

解决方案


cd,在您的情况下,是一个变量,其范围是函数sum(),因此它将在函数调用时分配,然后在函数返回时释放。要打印结果,您必须执行以下操作:

def sum(ab,bc):
    cd = ab + bc
    return cd

ab = 5
bc = 6

res=sum(ab,bc)
print(res)'

如果要“调试”,则必须在函数体“内部”进行打印

def sum(ab,bc):
    cd = ab + bc
    print cd
    return cd

我也会避免使用cd和其他“保留”字词作为变量名,因为结果可能会损坏。


推荐阅读