Python 嵌套函数中的转义

Python 嵌套函数中的转义,python,escaping,Python,Escaping,我一直在到处寻找,还没有想到如何做到这一点。基本上,我正在尝试设置一个简单的CLI,在调用的函数中的任何给定时间,按下escape按钮都会将我带回菜单()。我不知道执行起来有多复杂,因为我已经尝试了张贴在这些板上的几种解决方案/变体,但没有一种对我有效。我想知道是否有人能给我指出正确的方向。非常感谢 主循环基本上调用所有函数,如下所示: if __name__=='__main__': while True: command = raw_input("> ")

我一直在到处寻找,还没有想到如何做到这一点。基本上,我正在尝试设置一个简单的CLI,在调用的函数中的任何给定时间,按下escape按钮都会将我带回菜单()。我不知道执行起来有多复杂,因为我已经尝试了张贴在这些板上的几种解决方案/变体,但没有一种对我有效。我想知道是否有人能给我指出正确的方向。非常感谢

主循环基本上调用所有函数,如下所示:

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不确定这是否有效,因为它强制退出程序。我只是在寻找一种方法,在不完全关闭程序的情况下返回到另一个函数。但我洗耳恭听是否有办法做到这一点。