Ich versuche, eine Switch-Logik in Python zu bauen.Pythonic Schalter innerhalb der Klasse
Basierend auf Replacements for switch statement in Python? ich den folgenden Code bauen:
def func(string):
print(string)
class Switch:
def __init__(self):
pass
def first_switch(self, case):
return {
'1': func('I am case 1'),
'2': func('I am case 2'),
'3': func('I am case 3'),
}.get(case, func('default'))
switch = Switch()
switch.first_switch('2')
Das gibt mir die Ausgabe:
I am case 1
I am case 2
I am case 3
default
ich die Ausgabe
I am case 2
Ist das Wörterbuch zu erwarten -case-logic nur außerhalb einer Klassendefinition anwendbar oder habe ich etwas zusätzlichen Code vermisst? Es sieht so aus, als ob alle Schlüssel/Wert-Paare aus dem Wörterbuch beim Funktionsaufruf ausgewertet werden.
Der Wert ist das * Ergebnis * die Funktion aufrufen. Warum speichern Sie nicht einfach die Zeichenfolgen und rufen 'func' auf, was auch immer Sie aus dem Wörterbuch herausholen? Warum sollte man sich auch mit 'func' beschäftigen, wenn es nur' print' ist? – jonrsharpe
Wenn Sie Werte speichern möchten, sollte func sein Argument zurückgeben. Gerade jetzt ist dein Wörterbuch alles Nones. –