现在我知道了全局声明,并且还可以找出错误即将发生的原因(计数在函数中引用,我稍后调用它),但是无法想出任何方法来绕过它。为什么即使我在定义变量后调用函数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
中的函数参数。每次Count2
for循环运行时,u
必须重置为1,但每次调用ways
时都不会重置为{。}
答案 0 :(得分:1)
def f(x,count):
if count < x:
<some irrelevant code>
for i in range(10):
count = 1
f(3,count)
<some more irrelevant code>
制作&#34;计数&#34;本地功能。如果您将 count 传递给函数 f ,则无需将其设为全局,并且它应该可以正常工作。