【发布时间】:2021-03-31 18:25:38
【问题描述】:
我开始学习 Python。现在我正在创建一个允许创建、查看或删除存储在 SQLite 3 DB 中的联系人的 CLI。问题是每次我完成一项任务时,我都会再次调用 main 函数,以便用户可以做其他事情。代码如下所示:
def main(self):
print("What operation would you like to perform: Display contacts (1), add a new one (2), or remove one (3)?")
option = int(input())
try:
if option == 1:
self.display()
self.main()
elif option == 2:
self.new()
self.main()
elif option == 3:
self.delete()
self.main()
except TypeError:
print("Please introduce a valid option")
sys.exit()
我很确定一个函数的连续调用会降低它的性能,我认为你可以调用一个递归函数的次数是有限制的,那么我应该如何再次调用 main 方法呢?
【问题讨论】:
-
使用循环重复
mainwhileoption == 1的所有内容 -
您的
except子句永远不会被击中。您是否打算将option = int(input())行放在try内?你知道,你真的不需要在那里承担异常的成本。您可以说if option == '1':并跳过转换为整数。
标签: python python-3.x infinite-recursion