我有函数a调用函数b(返回True或False到a),之后函数a可以返回要打印的结果.
class C:
...
def a(self, data):
p = self.head
return self.b( p,data)
def b(self, p, data):
current = p
if current.data == data:
return True
else:
return False
if __name__=="__main__":
x = C()
print(x.a(1))
Run Code Online (Sandbox Code Playgroud)
有时它会返回None,尽管它应该是True.我不确定发生了什么?
没有看到你的实际代码就不可能说.可能原因是通过您的函数的代码路径不执行return语句.当代码沿着该路径向下时,该函数以没有返回值结束,因此返回None.
更新:听起来您的代码如下所示:
def b(self, p, data):
current = p
if current.data == data:
return True
elif current.data == 1:
return False
else:
self.b(current.next, data)
Run Code Online (Sandbox Code Playgroud)
那条别条款是你的None道路.您需要返回递归调用返回的值:
else:
return self.b(current.next, data)
Run Code Online (Sandbox Code Playgroud)
顺便说一句:在Python中使用这种迭代程序的递归并不是一个好主意.请改用迭代.此外,您没有明确的终止条件.
| 归档时间: |
|
| 查看次数: |
95985 次 |
| 最近记录: |