Python 嵌套函数中的转义
我一直在到处寻找,还没有想到如何做到这一点。基本上,我正在尝试设置一个简单的CLI,在调用的函数中的任何给定时间,按下escape按钮都会将我带回菜单()。我不知道执行起来有多复杂,因为我已经尝试了张贴在这些板上的几种解决方案/变体,但没有一种对我有效。我想知道是否有人能给我指出正确的方向。非常感谢 主循环基本上调用所有函数,如下所示:Python 嵌套函数中的转义,python,escaping,Python,Escaping,我一直在到处寻找,还没有想到如何做到这一点。基本上,我正在尝试设置一个简单的CLI,在调用的函数中的任何给定时间,按下escape按钮都会将我带回菜单()。我不知道执行起来有多复杂,因为我已经尝试了张贴在这些板上的几种解决方案/变体,但没有一种对我有效。我想知道是否有人能给我指出正确的方向。非常感谢 主循环基本上调用所有函数,如下所示: if __name__=='__main__': while True: command = raw_input("> ")
if __name__=='__main__':
while True:
command = raw_input("> ")
if command.lower() == 'exit':
quit()
continue
elif command.lower() == 'help':
menu()
continue
elif command.lower() == 'show':
show()
continue
elif command.lower() == 'find':
finder()
continue
else:
print("Not a valid command.")
def finder():
q = raw_input("Search for q: ")
for row in open("filename.csv"):
if q in row:
print row,
例如,如果我在循环过程中调用finder()函数,我会得到以下结果:
if __name__=='__main__':
while True:
command = raw_input("> ")
if command.lower() == 'exit':
quit()
continue
elif command.lower() == 'help':
menu()
continue
elif command.lower() == 'show':
show()
continue
elif command.lower() == 'find':
finder()
continue
else:
print("Not a valid command.")
def finder():
q = raw_input("Search for q: ")
for row in open("filename.csv"):
if q in row:
print row,
当输入询问q时,是否可以触发escape键将我带到另一个函数,如menu()?理想情况下,我希望转义代码存在于函数之外,而不是在主循环中已经存在的每个函数中创建参数。我不知道是否有一个简单的方法来实现这一点。将您对
finder()
的调用打包如下:
try:
finder()
except KeyboardInterrupt:
pass
如果在finder()期间按ctrl-c键,这将中断finder并在调用它的位置继续
此外,条件句中的所有
continue
s都是不必要的,可以删除。除非明确告知,否则while循环不会中断,或者其条件发生变化。键盘中断是否足够?也就是说,ctrl cI不确定这是否有效,因为它强制退出程序。我只是在寻找一种方法,在不完全关闭程序的情况下返回到另一个函数。但我洗耳恭听是否有办法做到这一点。