A question about Python Classes

chad cdalten at gmail.com
Sat Apr 23 22:30:02 CEST 2011


On Apr 22, 12:47 pm, Carl Banks <pavlovevide... at gmail.com> wrote:
> On Thursday, April 21, 2011 11:00:08 AM UTC-7, MRAB wrote:
> > On 21/04/2011 18:12, Pascal J. Bourguignon wrote:
> > > chad<cda... at gmail.com>  writes:
>
> > >> Let's say I have the following....
>
> > >> class BaseHandler:
> > >>      def foo(self):
> > >>          print "Hello"
>
> > >> class HomeHandler(BaseHandler):
> > >>      pass
>
> > >> Then I do the following...
>
> > >> test = HomeHandler()
> > >> test.foo()
>
> > >> How can HomeHandler call foo() when I never created an instance of
> > >> BaseHandler?
>
> > > But you created one!
>
> > No, he didn't, he created an instance of HomeHandler.
>
> > > test is an instance of HomeHandler, which is a subclass of BaseHandler,
> > > so test is also an instance of BaseHandler.
>
> > test isn't really an instance of BaseHandler, it's an instance of
> > HomeHandler, which is a subclass of BaseHandler.
>
> I'm going to vote that this is incorrect usage.  An instance of HomeHandler is also an instance of BaseHandler, and it is incorrect to say it is not.  The call to HomeHandler does create an instance of BaseHandler.
>

What do you mean by the "call to HomeHandler"?  Don't I call
HomeHandler after I create an instance of BaseHandler?

Chad




More information about the Python-list mailing list