Sie können sogar
tun %Vor%(Beachten Sie, dass Ihr Code kleingeschriebene Klassenschlüsselwörter benötigt ...)
Ja, der Code ist gültig. aber warum nicht einfach den Code ausführen, um es herauszufinden?
Sie können dies auch mit Funktionsdefinitionen tun.
Es ist sicherlich nicht für die Lokalisierung empfohlen, wie in Ihrem Beispiel.
Die Hauptsache ist, wie viel Code in den spezialisierten Versionen der Klasse im Vergleich zu anderen Versionen ähnlich sein wird. Wenn nur eine kleine Menge Code anders ist, oder wenn nur Daten unterschiedlich sind ("Hallo" vs "Salut"), gibt es bessere Möglichkeiten.
Ein Fall, in dem ich die bedingte Deklaration von Klassen in Betracht ziehen könnte, ist, wenn ich Funktionen auf zwei verschiedenen Betriebssystemen zur Verfügung stelle, und es ist sehr unterschiedlich, diese Funktionalität zu erhalten. Als Beispiel versuche ich vielleicht, iTunes von einem Skript zu steuern, und auf MacOS verwende ich AppleScript, um es zu fahren, aber unter Windows muss ich COM verwenden. Ich könnte eine Wrapperklasse erstellen, die der Rest meines Codes verwenden könnte, ohne sich darum zu kümmern, welches Betriebssystem verwendet wurde.
Sie können auch Bedingungen für die "Deklarationen" innerhalb der Klasse definieren, da diese als Teil der Klassenkonstruktion ausgeführt werden:
%Vor%(ireute ist hier eine Klassenvariable, die eine Membervariable begrüßt)
oder einfach nur
%Vor%... ergibt normalerweise den gleichen Effekt.
Es ist ein gültiger Code, aber in diesem Format nicht wirklich empfohlen (vorausgesetzt, der Code würde der Klassendeklaration folgen). Da wirst du irgendwann die Klasse benutzen. Angenommen, Sie verwenden immer noch zwei Klassen, die gleich benannt sind, könnte das später verwirrend sein. Vielleicht sollten Sie den Code in eine Funktion einschließen, um die von Ihnen erstellte Klasse zurückzugeben. Jetzt haben Sie eine grundlegende Factory .
%Vor%Würde "Salut!" ausgeben.
Sie müssen den Code möglicherweise nicht wie bei Ihnen wiederholen. Fragen Sie sich, ob Sie den Klassenbaucode oder nur Variablen innerhalb der Klasse selbst wiederholen müssen? Wenn es Letzteres ist, können Sie dieselbe Klasse für beide Fälle verwenden, indem Sie ein Argument in __init__()
verwenden und dann eine Instanz der Klasse mit der gewünschten Variablen bedingt zurückgeben:
Tags und Links python