On 3/9/06, Gregor Lingl <[EMAIL PROTECTED]> wrote: > > > Andre Roberge schrieb: > > On 3/9/06, kirby urner <[EMAIL PROTECTED]> wrote: > > > >>Here's what I'm starting with today: > >> > >>http://www.4dsolutions.net/ocn/python/zoo.py > >> > >>Note: inheriting from object at the top level, per André's suggestion. > >> > >>Kirby > > > > > > I like your examples. I imagine you are presenting them to the same > > group of students you mentioned before. One example that I've seen on > > comp.lang.python which I really like, especially because it has a > > second level of inheritance, is the following (original by John > > Gabriele, with comments modified slightly here): > > > > Sorry Andre, but I really dislike this example. For me and in my lessons > inheritance is connected to an "isa" relation. > > A Monkey isa Mammal etc. > > This is violated here and i consider the confusion, which would be > caused by this example, would outweigh the benefits, if any ...
Very good points. I guess I won't be including this type of example in the lessons I am writing for rur-ple. Thanks! André > > This doesn't work: > > A parent "isa" grand_parent ? - no! A child "isa" parent ? - no! I > understand that the exmples goes about inheriting habits or opinions, > but I really think this shouldn't be done this way > > Regards > > Gregor > > > #----------------------------------------------------------------- > > class Grand_parent( object ): > > > > def speak( self ): > > print 'Grand_parent.speak()' > > self.advise() > > > > def advise( self ): > > print 'Grand_parent.advise()' > > self.critique() > > > > def critique( self ): > > print 'Grand_parent.critique()' > > > > #----------------------------------------------------------------- > > class Parent( Grand_parent ): > > > > def speak( self ): > > print '\tParent.speak()' > > self.advise() > > > > def advise( self ): > > print '\tParent.advise()' > > self.critique() > > > > # The Parent inherits his criticism method from his/her own parent > > > > #----------------------------------------------------------------- > > class Child( Parent ): > > > > def speak( self ): > > print '\t\tChild.speak()' > > self.advise() > > > > # Currently, the Child has no really useful advice to give. The > > child will just > > # parrot what he/she hears the parent say. > > > > def critique( self ): > > print '\t\tChild.critique()' > > > > #----------------------------------------------------------------- > > print 'speak() calls advise(), then advise() calls critique().' > > print > > > > people = [ Grand_parent(), Parent(), Child() ] > > for person in people: > > person.speak() > > print > > > > ==================== > > The output is: > > > > speak() calls advise(), then advise() calls critique(). > > > > Grand_parent.speak() > > Grand_parent.advise() > > Grand_parent.critique() > > > > Parent.speak() > > Parent.advise() > > Grand_parent.critique() > > > > Child.speak() > > Parent.advise() > > Child.critique() > > > > André > > _______________________________________________ > > Edu-sig mailing list > > [email protected] > > http://mail.python.org/mailman/listinfo/edu-sig > > > > > > -- > Gregor Lingl > Reisnerstrasse 3/19 > A-1030 Wien > > Telefon: +43 1 713 33 98 > Mobil: +43 664 140 35 27 > > Website: python4kids.net > _______________________________________________ Edu-sig mailing list [email protected] http://mail.python.org/mailman/listinfo/edu-sig
