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