Wie erzwinge ich eine Methodensignatur für untergeordnete Klassen?
Sprachen wie C # und Java weisen Methodenüberladungen auf. Wenn die untergeordnete Klasse die Methode nicht mit der genauen Signatur implementiert, wird die übergeordnete Methode nicht überschrieben.
Wie erzwingen wir die Methodensignatur in untergeordneten Klassen in Python? Das folgende Codebeispiel zeigt, dass die untergeordnete Klasse die übergeordnete Methode mit einer anderen Methodensignatur überschreibt:
>>> class A(object):
... def m(self, p=None):
... raise NotImplementedError('Not implemented')
...
>>> class B(A):
... def m(self, p2=None):
... print p2
...
>>> B().m('123')
123
Dies ist zwar nicht besonders wichtig, oder vielleicht aufgrund des Designs von Python (z. B. * args, ** kwargs). Ich bitte dies aus Gründen der Klarheit, wenn dies möglich ist.
Bitte beachten Sie:
Ich habe versucht@abstractmethod
und dasABC
bereits.