Ich versuche, eine abstrakte Klasse A
mit einem Konstruktor mit einem Standard-Verhalten zu erklären: alle Subklassen ein Mitglied self.n
initialisieren müssen:Python: abstrakte Klasse __init__
from abc import ABCMeta
class A(object):
__metaclass__ = ABCMeta
def __init__(self, n):
self.n = n
Ich möchte jedoch nicht die A
lassen Klasse instanziiert werden, denn es ist eine abstrakte Klasse. Das Problem ist, das ist eigentlich erlaubt:
a = A(3)
Das erzeugt keine Fehler, wenn ich es erwarten würde.
Also: Wie kann ich eine nicht instanziierbare abstrakte Klasse definieren, während ich ein Standardverhalten für den Konstruktor definiere?
Das erzeugt keinen Fehler !! Instanziierung funktioniert gut – void
Getestet mit Python 2.7. –
Ja, ich benutze Python3 ... Warum ist es so? @ MikeMüller – void