Python utilisant la méthode de la classe dérivée dans la classe parent?

Puis-je la force d'une classe parent d'appeler une classe dérivée de la version d'une fonction?

class Base(object):
    attr1 = ''
    attr2 = ''

    def virtual(self):
        pass               # doesn't do anything in the parent class

    def func(self):
        print "%s, %s" % (self.attr1, self.attr2)
        self.virtual()

et une classe qui dérive de la

class Derived(Base):
    attr1 = 'I am in class Derived'
    attr2 = 'blah blah'

    def virtual(self):
        # do stuff...
        # do stuff...

L'éclaircissement de l'imprécision:

d = Derived()
d.func()         # calls self.virtual() which is Base::virtual(), 
                 #  and I need it to be Derived::virtual()

source d'informationauteur Paul Woolcock | 2010-02-19