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.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage