Вам необходимо переопределить метод postcmd
:
Cmd.postcmd (остановка, линия)
метод Hook выполняется только после того, как команда отправки закончена. Этот метод является заглушкой в Cmd; он существует для переопределения подклассами. строка - это командная строка, которая была выполнена, а stop - флаг, который указывает, будет ли выполнение прекращено после вызова postcmd(); это будет возвращаемое значение метода onecmd(). Возвращаемое значение этого метода будет использоваться в качестве нового значения для внутреннего флага , который соответствует остановке; возврат false приведет к продолжению интерпретации .
А из документации cmdloop
:
Этот метод будет возвращать, когда метод postcmd() возвращает истинное значение . Аргумент stop для 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
Интересно, если я могу просто сделать определение функции do_exit (самоощущение, линия): возвращающих true', так что выдача команды 'exit' будет вспыхнуть' cmdloop' , –
Да, это точно. – isedev