我的代码:
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 :(得分: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
,例如用于定义函数的函数。
这两种情况都不适用于你的代码,你只是呆在一个函数中。
在您的情况下,口译员会抱怨,而使用单词global
则表示存在名为numItr
的模块级变量,但没有。{/ p>
答案 1 :(得分:0)
也许您的问题是numItr
未在draw_lines
函数之前声明。看看这个https://stackoverflow.com/a/423596/6876911