问题描述
我开始学习 Python。现在我正在创建一个 CLI,它允许创建、查看或删除存储在 sqlite 3 DB 中的联系人。问题是,每次我完成一项任务时,我都会再次调用 main 函数,以便用户可以做其他事情。代码如下所示:
using Conda
Conda.runconda(`install scikit-learn --force-reinstall --yes`)
我很确定连续调用一个函数会降低它的性能,而且我认为调用递归函数的次数是有限制的,那么我应该如何再次调用 main 方法?
解决方法
您对递归调用是正确的。它们可以很好,但迭代通常比递归更好。
要进行无限编程,您可以做很多事情,但对于 cli,最简单的方法是将所有函数放入一个循环中。
这有点难看,但这应该可以工作,而不必每次都调用 main()。
def main(self):
again=True
while again:
print("What operation would you like to perform: Quit(0) Display contacts (1),add a new one (2),or remove one (3)?")
option = int(input())
if option == 0:
again=False
if option == 1:
self.display()
self.main()
elif option == 2:
self.new()
self.main()
elif option == 3:
self.delete()
self.main()
else:
print("Please introduce a valid option")
话虽如此,你仍然需要调用 main()
,这里的主要目标是管理循环内的选项并一次调用它。例如:
$ python3 ./script.py -123
, 在python中没有“main函数”或“main方法”这样的东西。 如果您愿意,您可以阅读有关 constructors、call operations 等的信息。 所以,如果我理解正确的话——你想递归调用“main”方法。您可以像这样计算此方法中的出现次数:
def main(self,count= <your number>):
在此之后,如果您想调用此递归,请创建循环或仅求和“计数”:
<some code here>
if count == <your number>:
return
else:
count += 5
self.main(count)