Lo que pasa aquí es bien simple. Ademas de no lanzar la excepción adecuada.
Es que
no puedes (en python no debes) instanciar una clase abstracta.
Entonces en esta parte:
Deberia ser
En implementacion
Código Python:
Ver originaldef _init_(self,cad):
return super(self,implementacion)._init_("asdas")
Deberia ser
Código Python:
Ver originaldef __init__(self,cad):
return super(self,implementacion).__init__("asdas")
Tienes mucho mas errores, como por ejemplo que super solo lo puedes utilizar con clases de nuevo estilo, lanzar la excepción correcta, etc...
Código Python:
Ver originalclass ClaseAbstracta(object):
def __init__(self, cad):
self.cad = cad
def mostrar(self):
raise NotImplementedError()
class Implementacion(ClaseAbstracta):
def __init__(self, cad):
super(Implementacion, self).__init__(cad)
def mostrar(self):
print self.cad
if __name__ == '__main__':
var = Implementacion("lorito") #OK, esto es lo que se debe de hacer
var.mostrar() # Esto es lo que intentas hacer.
# Ejemplo de lo que no se debe de hacer
var = ClaseAbstracta('lorito') #Ok, puedes instanciar (pero no debes)
var.mostrar() # No puedes utilizar el objeto