私はこれで3時間戦っています。
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 (つまり、その変数が現在の関数内で変化したもの) の値を他の後続の関数に渡しました。私の理解が間違っているか、単に間違っているだけです。