Как выйти из цикла 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