[Tutor] Translate this VB.NET code into Python for me?

Dick Moores rdm at rcblue.com
Wed Mar 5 02:23:27 CET 2008


At 07:10 AM 3/4/2008, Jerry Hill wrote:
>On Tue, Mar 4, 2008 at 8:05 AM, Dick Moores <rdm at rcblue.com> wrote:
> >  By the second chapter I've begun to suspect that GUIs aside, Python
> >  is a lot simpler to write. Could someone prove that to me by
> >  translating the code I've pasted at
> >  <http://py77.python.pastebin.com/f24d74b17> (from pp. 51-54 of the
> >  book), which prints
>
>This code is pretty straightforward to translate into python.  It's
>pretty short so, I've pasted it inline:
>
>import sys
>
>class Dog(object):
>     def __init__(self, name, sound="barks"):
>         self.name = name
>         self.sound = sound
>     def bark(self):
>         print "%s %s" % (self.name, self.sound)
>     def do_your_thing(self):
>         raise NotImplementedError
>
>class Rottweiler(Dog):
>     def do_your_thing(self):
>         print "%s snarls at you in a menacing fashion." % self.name
>
>class Spaniel(Dog):
>     def do_your_thing(self):
>         print "%s licks you all over, then drools on you." % self.name
>
>if __name__ == "__main__":
>     butch = Rottweiler("Butch")
>     mac = Spaniel("Mac", "yips")
>
>     butch.bark()
>     mac.bark()
>
>     butch.do_your_thing()
>     mac.do_your_thing()
>     sys.stdin.readline()
>
>It's probably more pythonic to not define the Dog.do_your_thing()
>method at all than to raise the NotImplementedError, but I think that
>this way mirrors the VB code a bit better.  I don't think there's a
>good way to mark the entire Dog class as abstract in python, which I
>think is what the VB code does with the "MustInherit Class Dog" line.

Thanks VERY much, Jerry

Dick




More information about the Tutor mailing list