Как использовать регистр соответствия с типом классаPython

Программы на Python
Anonymous
 Как использовать регистр соответствия с типом класса

Сообщение Anonymous »

Я хочу использовать сопоставление, чтобы определить действие, которое необходимо выполнить, на основе типа класса. Кажется, я не могу понять, как это сделать. Я знаю, что есть и другие способы добиться этого, мне просто хотелось бы знать, можно ли это сделать таким образом. Я не ищу обходных путей, которых много.

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

Вернуться в «Python»