如何使用Python中的return语句将局部变量传递给下一个函数

如何使用Python中的return语句将局部变量传递给下一个函数,python,function,return,local-variables,Python,Function,Return,Local Variables,我是Python新手,在最基本的级别上尝试将变量传递给后续函数,这让我很沮丧。我已经在这个网站和其他网站上进行了研究,但没有得到一个合适的明确答案。我不想使用全局变量。我根据IDLE的错误报告尝试了各种函数的位置参数,但我不明白为什么在下面的代码中,前两个函数可以按预期工作,而第三个函数遵循完全相同的结构,却失败了。代码如下: #passing values between functs. def func1(): initial_value = 'abc' print(ini

我是Python新手,在最基本的级别上尝试将变量传递给后续函数,这让我很沮丧。我已经在这个网站和其他网站上进行了研究,但没有得到一个合适的明确答案。我不想使用全局变量。我根据IDLE的错误报告尝试了各种函数的位置参数,但我不明白为什么在下面的代码中,前两个函数可以按预期工作,而第三个函数遵循完全相同的结构,却失败了。代码如下:

#passing values between functs.

def func1():
    initial_value = 'abc'
    print(initial_value, "is the initial value.")
    value_to_pass = initial_value
    return value_to_pass

def func2(value_to_pass):
    print("\nIn FUNC2 now. Did the value pass?")
    print(value_to_pass, "is the passed value.")
    new_value1 = value_to_pass + 'd'
    print(new_value1, "is the new value.")
    return new_value1

def func3(new_value1):
    print("\nIn FUNC3 now. Did the value pass?")
    print(new_value1, "is the passed value.")
    new_value2 = new_value1 + 'e'
    print(new_value2, "is the new value.")


#main
func2(func1())
func3(func2())


input("\nPress the ENTER key to EXIT.") 

正如空闲错误所示,我尝试在
\main
下的
func2
func3
调用中添加
value\u to\u pass
作为参数,以及其他一些组合来尝试让它工作,但运气不佳。有人能给我解释一下为什么这里出了问题,还有什么地方出了问题吗?

func2需要一个论点。试一试

#main
func2(func1())
func3(func2(func1()))

顺便说一下,如果您正在写错误消息,请发布堆栈跟踪。这将使检查问题更容易。

在代码
func2(func1())
中,您使用
func1
中的
返回值
作为
func2
定义中所需的变量。在您的示例中,
func1
始终满足将变量传递给
func2
func3

请记住,
func2
func3
必须始终在()内有一个变量。该变量可以是调用另一个函数(如
func2(func1())
)时返回的值,但不能为空,如第二个示例中的
func3(func2())

在第二个示例中,
func3
变量要求由
func2
的返回值满足,但是
func2
没有传递变量,因此它失败。如前所述,您需要在代码的
func2()
部分中放入一些内容。

@jim: 谢谢你,这很有效:

#main
func2(func1())
func3(func2(func1()))
abc是初始值

现在在第二区。价值通过了吗? abc是传递的值。 abcd是新值。 abc是初始值

现在在第二区。价值通过了吗? abc是传递的值。 abcd是新值

现在是第三次。价值通过了吗? abcd是传递的值。 abcde是新的价值观


按ENTER键退出。

输出:abc是初始值。现在在第二区。价值通过了吗?abc是传递的值。abcd是新值。回溯(最后一次调用):文件“C:\Users….pass\u vals\u prog.py”,第25行,在func3(func2())类型中错误:func2()缺少1个必需的位置参数:“value\u to\u pass”#main func2(func1())func3(func2(func1())。此问题不属于此问题。即使其他新手有类似的问题,他们也永远无法找到这个讨论。试着找一个本地python会议来帮助你学习。
#main
func2(func1())
func3(func2(func1()))