Python usando el método de la clase derivada en la clase padre?

¿Puedo forzar a una clase primaria a llamar a la versión de una función de una clase derivada?

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()

y una clase que deriva de ello

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

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

Aclarando la vaguedad:

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

Respuestas a la pregunta(3)

Su respuesta a la pregunta