Erster Tag lernen Python, bitte entschuldigen Sie die grundlegende Frage.Lernen Python: Implementieren einer virtuellen Methode
Angenommen, ich habe eine Aufgabe gegeben, die eine nicht implementierte Methode enthält, die ich implementieren müssen, z:
class myclass():
def __init__(self)
self.unimplementedmethod = False
Was ist der richtige Weg, dies in einem instantiierten Objekt zu implementieren? Ich möchte die Basisklasse in keiner Weise ändern. Ich habe experimentiert und gefunden der folgende Code scheint zu funktionieren, aber ist es richtig/guter Stil?
def methodimplementation():
print("method called")
myobject = myclass()
myobject.unimplementedmethod=methodimplementation
Ist das der richtige Weg? Oder sollte ich etwas anderes tun, als vielleicht zuerst eine abgeleitete Klasse zu erstellen, die Methoden darin zu implementieren und dann ein Objekt basierend auf der abgeleiteten Klasse zu instanziieren? Was ist die beste Vorgehensweise?
Sie sollten die Klasse ableiten, ja. Und eine nicht implementierte Methode sollte nicht den Wert "False" haben, sondern stattdessen (falls vorhanden) tatsächliche Methoden sein, die den Singleton 'NotImplemented' zurückgeben. – L3viathan
Danke. Dies ist aus dem Open-Source-Projekt "Printrun". P. Verdammt schnell! –
Ich weiß, dass dies keine Code-Überprüfung ist, aber Sie brauchen '()' nicht in 'class myclass():' (Sie sollten jedoch 'object' immer ableiten, wenn Sie Python 2 schreiben). – Tobias