在嵌套函数中转义

时间:2016-04-14 16:51:17

标签: python escaping

我一直在各地搜索,并没有想到如何做到这一点。基本上我正在尝试设置一个简单的CLI,在调用函数内的任何给定时间按下转义按钮将带我回到菜单()。不知道这是多么复杂,因为我已经尝试了在这些板上发布的几个解决方案/变体,但这些都没有对我有用。想知道是否有人能指出我正确的方向。非常感激!

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

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.")

一个例子是如果我在循环期间调用finder()函数并且我有以下内容:

def finder():
    q = raw_input("Search for q: ")
    for row in open("filename.csv"):
        if q in row:
            print row,

当输入询问q时,是否可以触发转义键将我带到另一个函数(如menu())?理想情况下,我希望转义代码存在于函数之外,而不是在主循环中已存在的每个函数中创建一个参数。我不知道是否有一种简单的方法可以实现这一目标。

1 个答案:

答案 0 :(得分:0)

将您的电话转接至finder()

try:
    finder()
except KeyboardInterrupt:
    pass

如果你在finder()期间按ctrl-c,这将会取消查找器并继续在调用它的位置。

此外,您的条件中的所有continue都是不必要的,可以删除。 while-loop除非明确告知,或者条件发生变化,否则不会中断。