2017-02-01 16 views
1

マイコードを与える:Pythonのグローバル変数はNameError

def draw_lines(img, lines, color, thickness) : 
    x_right = [] 
    y_right = [] 
    x_left = [] 
    y_left = [] 
    numItr = 1 

    for line in lines : 
     for x1,y1,x2,y2 in lines : 
     global numItr 
     numItr += 1 

そして、これは誤りです:

NameError: name 'numItr' is not defined  
+0

画像を投稿するのではなく、ここにコードを投稿してください – Yousaf

+0

コードを貼り付けてコピーしてください。また、使用する前に変数が定義されていません。 – Saksow

+0

関数に渡すパラメータ値は何ですか?正確な情報を投稿できますか?このコードで何を達成しようとしているのかをお知らせください。 –

答えて

1

ここglobalまたはnonlocalを使用する必要はありませんを見て:あなたはモジュールレベル変数に書き込みたい場合は

def draw_lines(img, lines, color, thickness) : 
    x_right = [] 
    y_right = [] 
    x_left = [] 
    y_left = [] 
    numItr = 1 

    for line in lines : 
     for x1,y1,x2,y2 in lines : 
      numItr += 1 

はあなたが唯一のglobalを必要としています。 字句を囲む関数にローカルな変数に書き込む場合は、nonlocalが必要です。関数を定義する関数。

いずれの場合もコードには適用されません。ただ1つの関数内にとどまっているだけです。

あなたのケースでは、globalという単語を使用すると、numItrというモジュールレベルの変数が存在することを示していますが、これはありません。

関連する問題