Как выйти из цикла cmd модуля cmd чисто

Я использую cmd модуль в Python для создания небольшой интерактивной программы командной строки. Однако из этой документации:http://docs.python.org/2/library/cmd.html, неясно, что такое чистый способ выхода из программы (т. е. cmdloop) программно.

В идеале, я хочу выпустить некоторую команду exit в приглашении, и это выйдет из программы.

1 ответов


вам нужно переопределить postcmd способ:

Cmd.postcmd (stop, line)

метод Hook выполняется сразу после завершения отправки команды. Этот метод является заглушкой в Cmd; он существует для переопределения подклассами. строка-это командная строка, которая была выполнена, а stop-флаг, который указывает, будет ли выполнение прекращено после вызова postcmd (); это будет возвращаемое значение метода onecmd (). Этот возвращаемое значение этого метод будет использоваться в качестве нового значения внутренний флаг, соответствующий stop; возврат false вызовет перевод будет продолжен.

и cmdloop документы:

этот метод будет возвращен, когда метод postcmd () возвращает true значение. Стоп аргумент postcmd () - возвращаемое значение от соответствующий метод do_*() команды.

другими словами:

import cmd
class Test(cmd.Cmd):
    # your stuff (do_XXX methods should return nothing or False)
    def do_exit(self,*args):
        return True