这是我的功能,重要的一行是我再次调用f()。
def f(num,xyz,possible,temp):
y = num%9
x = num-y
print num
for xyz[num] in possible[num]:
if ispossibility(temp,xyz[num],x,y) == True:
temp[num] = xyz[num]
if num != 80:
f(num+1,xyz,possible,temp) # i call f() with num incremented
else:
print 'yes'
exit()
程序的输出是
0
1
2
3
4
5
6
7
8
3
2
3
3
问题在于,无论何时调用函数f(),变量num应始终递增1.但是从输出中调用f()时,num为3,之前为8。所以我想知道当f()总是被称为w / num加1时,这是怎么可能的(输出应该是9 btw,而不是3)。我一直在看这个函数一段时间我真的不明白发生了什么。
答案 0 :(得分:4)
您在循环内部调用f(num+1, ...)
,因此可以多次为f()
调用num
相同的值。