Gibt es irgendeine Magie, die ich in Python benutzen kann, um den Superkonstruktor effektiv zu benutzen, indem ich einfach ein paar zusätzliche Argumente hinzufüge?
Idealerweise würde ich gerne etwas wie:
verwenden %Vor%Und dann können Sie die ursprünglichen Konstruktorargumente mit einigen Extras aus meiner Klasse kombinieren. Wie so:
%Vor%Ich benutze Python 2.6, aber wenn die Magie nur in einer höheren Version von Python erreicht werden kann, dann bin ich auch interessiert.
EDIT: Ich sollte wahrscheinlich erwähnen, dass oben nicht funktioniert. Der Fehler lautet: TypeError: __init__() takes at most 2 arguments (3 given)
Sie sind fast da:
%Vor% Python 2 ist etwas pingelig und witzig beim Mischen von *args
, **kwargs
und zusätzlichen Argumenten für named keyword; Am besten ist es, nicht zusätzliche Argumente für explizite Schlüsselwörter hinzuzufügen und sie stattdessen nur von kwargs
zu übernehmen.
Die Methode dict.pop()
entfernt den Schlüssel aus dem Wörterbuch, falls vorhanden. Rückgabe des zugehörigen Werts oder des von uns angegebenen Standards, falls dieser fehlt. Das bedeutet, dass wir nicht verbose
an die Superklasse weitergeben. Verwenden Sie kwargs.get('verbose', True)
, wenn Sie nur überprüfen möchten, ob der Parameter gesetzt wurde, ohne ihn zu entfernen.
Tags und Links python inheritance variadic-functions