我已经为此奋斗了三个小时。
ETA- 应该提到这一点,但出于此类的目的,不允许使用全局变量。
在函数 main() 中,当且仅当它是第一次运行整个函数时,我才想运行函数 firstPass。firstPass 函数初始化几个变量,并打印一些您不是第一次看到时不感兴趣的信息。
我有:
#Initialize variables that need to run before we can do any work here
count = 0
def firstPass():
x = 5
y = 2
print "Some stuff"
count = count + 1
print "Count in firstPass is",count
return count,x,y
def main ():
print "Count in main is",count
if count == 0:
firstPass()
else:
#Do a whole bunch of other stuff that is NOT supposed to happen on run #1
#because the other stuff uses user-modified x and y values, and resetting
#to start value would just be self-defeating.
main()
这在第一次传递时正确返回,但在随后的传递中,返回:
Count in main is 1
这也是我在其他函数中用户修改的 x 和 y 值的问题。虽然我没有在这里修改它们,但我确实包含了它们,因为稍后我需要在代码中的函数之间传递多个值,但是当我为了示例而可以将它们放在这里时,谁愿意阅读所有这些...... .
我的印象是
return [variable]
将变量的 CURRENT(即该变量在当前函数中的任何值)传递回其他后续函数。要么我的理解错了,要么我做错了。