Normalement, la sous-classe d'une classe que je fais quelque chose commeComment la sous-classe ABCMeta
class Subby(Parenty):
def __init__(self):
Parenty.__init__(self)
Mais maintenant, je suis en train de sous-classe une métaclasse, en particulier ABCMeta, donc je fais
import ABCMeta
class Subby(ABCMeta):
def __init__(self):
ABCMeta.__init__(self) #this never seems to run
def __new__(mcls, name, bases, namespace):
cls = ABCMeta.__new__(mcls, name, bases, namespace)
return cls
mais, quand j'essaie alors de sous-classe Subby
comme métaclasse comme
class newClass(metaclass=Subby):
pass
Je reçois l'erreur TypeError: __init__() takes 1 positional argument but 4 were given
.
Pourquoi est-ce, et comment sous-classe ABCMeta correctement?
'__init__' doit prendre les mêmes arguments que '__new__'. – user2357112
Pouvez-vous instancier 'Subby' tout seul? –
'ABCMeta' est la classe' abc.ABCMeta' ou une autre classe définie dans un autre module? – slackmart