现在我知道全局声明了,并且还可以计算为什么会出现错误(count在函数中被引用,稍后我会调用它),但不能想出任何方法来规避它。为什么count
给出错误,即使我在定义变量后调用函数f
?我如何重写这段代码片段? 感谢您的帮助!变量引用错误:我如何完成这项工作?
def f(x):
if count < x:
<some irrelevvant code>
for i in range(10):
count = 1
f(3)
<some more irrelevant code>
我的歉意,我想我的原始问题是有点不清楚。该“无关代码”我提到的实际上可能是相关的,所以我上传我的全部代码:
def ways(l, h):
if count2 < h:
for v in A: #A is a globally defined list
if u != v:
if check(t, v):
count2 += 1
t = v
ways(l, h)
else:
count1 += 1
count1 = 0
for u in A:
count2 = 1
t = u
ways(9, 3)
现在因为我递归调用函数ways
,我不能有count2
定义为ways
函数的参数。每次运行u
for循环时,必须将Count2
重置为1,但不是每当调用ways
时。
您明确地将'count'传递给'f'。 – jonrsharpe
在循环中,+ f(3,count) –
在定义f(x)之前,你可以执行'count = 1',它会起作用,但是你不这么做,最好把'count'传递给'f '明确地说,因为'显式比隐式更好。'# –