1

これが私のコードです:

import time

GLO = time.time()

def Test():
    print GLO
    temp = time.time();
    print temp
    GLO = temp

Test()

トレースバック (最新の最後の呼び出し): Test() 内のファイル "test.py"、11 行目 テスト印刷 GLO 内のファイル "test.py"、6 行目 UnboundLocalError: 割り当て前に参照されたローカル変数 'GLO'

を追加するとエラーが発生しましたGLO = temp。コメントすると、関数を正常に実行できます。なぜですか?

どうすれば設定できGLO = tempますか?

4

2 に答える 2

4

以下に示すように、Test メソッド内で、グローバルに宣言された GLO 変数を参照するように指定します。

def Test():
    global GLO #tell python that you are refering to the global variable GLO declared earlier.
    print GLO
    temp = time.time();
    print temp
    GLO = temp

同様の質問がここにあります: Using a global variable within a method

于 2013-07-14T16:52:50.107 に答える
3

Python は最初に関数スコープ全体を調べます。したがってGLO、グローバルなものではなく、以下のものを参照してください。LEGB ルールを参照してください。

GLO = time.time()

def Test(glo):
    print glo
    temp = time.time();
    print temp
    return temp

GLO = Test(GLO)

また

GLO = time.time()

def Test():
    global GLO
    print GLO
    temp = time.time();
    print temp
    GLO =  temp

Test()
于 2013-07-14T16:48:56.347 に答える