myvar1
がgenerate()
の機能ではアクセスできるが、copy()
の機能ではアクセスできない、この単純なPythonスクリプトがあります。pythonスクリプトのエラー
#!/usr/bin/python
import os, time
def Test(tcid,descr,iterations,filsz):
def setup():
print "entering set up\n"
global myvar1, myvar2
myvar1 = 1.0
myvar2 = os.getcwd()
def generate():
print "entering generate\n"
print "in generate", myvar1, myvar2
def copy():
print "in copy", myvar1, myvar2
myvar1 += 5.0
setup()
generate()
for loopcount in range(5):
loopcount = loopcount + 1
copy()
if __name__ == "__main__":
Test('test','simple test',2,10)
エラー:
トレースバック(最新の呼び出しの最後): テスト( 'テスト'、」で ファイル "./pyerror.py"、35行を、エラーを考え出す助けが必要単純なテスト '、2,10) ファイル "./pyerror.py"、行30、テスト中 コピー() ファイル "./pyerror.py"、行20、コピー "コピー中"、myvar1 、myvar2 UnboundLocalError:割り当て前に参照されるローカル変数 'myvar1'
[Pythonスコープの問題は、変数に_assigning_するときにのみ問題が発生する可能性があります](http://stackoverflow.com/questions/2886932/python-scope-problems-only-when-assigning-to-a-variable) –