Ich möchte match verwenden, um eine auszuführende Aktion basierend auf einem Klassentyp zu bestimmen. Ich kann anscheinend nicht herausfinden, wie es geht. Ich weiß, dass es andere Möglichkeiten gibt, dies zu erreichen. Ich würde nur gerne wissen, ob es auf diese Weise möglich ist. Ich suche nicht nach Workarounds, von denen es viele gibt.
Code: Select all
class aaa():
pass
class bbb():
pass
def f1(typ):
if typ is aaa:
print("aaa")
elif typ is bbb:
print("bbb")
else:
print("???")
def f2(typ):
match typ:
case aaa():
print("aaa")
case bbb():
print("bbb")
case _:
print("???")
f1(aaa)
f1(bbb)
f2(aaa)
f2(bbb)
Die Ausgabe ist wie folgt: