是否有人愿意解释为什么第一个不起作用,但第二个呢?
在第一个函数中,函数计算最终的调整值......
# returns None
def _pareRotation(degs):
if degs > 360:
_pareRotation(degs - 360)
else:
print "returning %s" % degs
return degs
...但返回None
:
print _pareRotation(540)
>> returning 180
>> None
但是,如果我们稍微翻转一下并返回功能......
# returns expected results
def _pareRotation(degs):
if degs < 360:
print "returning %s" % degs
return degs
else:
return _pareRotation(degs - 360)
......它按预期工作:
print _pareRotation(540)
>> returning 180
>> 180
大多数情况下,想知道导致None
从递归循环中弹出的原因是什么?
答案 0 :(得分:4)
在第一种情况下,您不返回:
def _pareRotation(degs):
if degs > 360:
_pareRotation(degs - 360)
# ^
答案 1 :(得分:0)
是的,你在第一种情况下没有回来,而且我认为它应该是%d,对于int。