[program-l] Re: Overriding Methods In cmd Module

  • From: "R Dinger" <rrdinger@xxxxxxxxxx>
  • To: <program-l@xxxxxxxxxxxxx>
  • Date: Tue, 9 Oct 2012 16:01:37 -0700

Hi Jim,

That "illustrate" example is often helpful if you get lost in the calls.

Good to hear you are clear on what is happening.

Richard
----- Original Message ----- 
From: Homme, James 
To: program-l@xxxxxxxxxxxxx 
Sent: Tuesday, October 09, 2012 12:34 PM
Subject: [program-l] Re: Overriding Methods In cmd Module


Hi Richard,

I see what is going on with this now. Here's the example that had me stumpped. 
All it is doing is printing messages that prove that the override functions 
work, then it's calling the default versions from the cmd module itself. I was 
thinking way too much.



import cmd 

class Illustrate(cmd.Cmd): 

    "Illustrate the base class method use." 

    

    def cmdloop(self, intro=None): 

        print 'cmdloop(%s)' % intro 

        return cmd.Cmd.cmdloop(self, intro) 

    

    def preloop(self): 

        print 'preloop()' 

    

    def postloop(self): 

        print 'postloop()' 

        

    def parseline(self, line): 

        print 'parseline(%s) =>' % line, 

        ret = cmd.Cmd.parseline(self, line) 

        print ret 

        return ret 

    

    def onecmd(self, s): 

        print 'onecmd(%s)' % s 

        return cmd.Cmd.onecmd(self, s) 



    def emptyline(self): 

        print 'emptyline()' 

        return cmd.Cmd.emptyline(self) 

    

    def default(self, line): 

        print 'default(%s)' % line 

        return cmd.Cmd.default(self, line) 

    

    def precmd(self, line): 

        print 'precmd(%s)' % line 

        return cmd.Cmd.precmd(self, line) 

    

    def postcmd(self, stop, line): 

        print 'postcmd(%s, %s)' % (stop, line) 

        return cmd.Cmd.postcmd(self, stop, line) 

    

    def do_greet(self, line): 

        print 'hello,', line 



    def do_EOF(self, line): 

        "Exit" 

        return True 

if __name__ == '__main__': 

    Illustrate().cmdloop('Illustrating the methods of cmd.Cmd')





Jim







--------------------------------------------------------------------------------

This e-mail and any attachments to it are confidential and are intended solely 
for use of the individual or entity to whom they are addressed. If you have 
received this e-mail in error, please notify the sender immediately and then 
delete it. If you are not the intended recipient, you must not keep, use, 
disclose, copy or distribute this e-mail without the author's prior permission. 
The views expressed in this e-mail message do not necessarily represent the 
views of Highmark Inc., its subsidiaries, or affiliates.

Other related posts: