Incompreensão abstrata da classe base do Python 2.6, 3
Não estou vendo o que espero quando uso o ABCMeta e o método abstrato.
Isso funciona bem em python3:
from abc import ABCMeta, abstractmethod
class Super(metaclass=ABCMeta):
@abstractmethod
def method(self):
pass
a = Super()
TypeError: Can't instantiate abstract class Super ...
E no 2.6:
class Super():
__metaclass__ = ABCMeta
@abstractmethod
def method(self):
pass
a = Super()
TypeError: Can't instantiate abstract class Super ...
Ambos também funcionam bem (recebo a exceção esperada) se derivar Super do objeto, além do ABCMeta.
Ambos "falham" (sem exceção), se derivar Super da lista.
Quero que uma classe base abstrata seja uma lista, mas abstrata e concreta nas subclasses.
Estou fazendo errado ou não devo querer isso em python?