Я хочу использовать сопоставление, чтобы определить действие, которое необходимо выполнить, на основе типа класса. Кажется, я не могу понять, как это сделать. Я знаю, что есть и другие способы добиться этого, мне просто хотелось бы знать, можно ли это сделать таким образом. Я не ищу обходных путей, которых много.
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)
Вывод следующий:
aaa
bbb
???
???
Подробнее здесь: https://stackoverflow.com/questions/714 ... class-type