Тип объединения или Объединение типовPython

Программы на Python
Anonymous
Тип объединения или Объединение типов

Сообщение Anonymous »

В Python Type[Union[A, B, C]] совпадает с Union[Type[A], Type, Type[C]]?
Я думаю, что они эквивалентны, и переводчик, похоже, с этим согласен.
ChatGPT (который, судя по моему прошлому опыту, имеет тенденцию ошибаться в вопросах такого типа) не согласен, поэтому мне было интересно, какой один более правильный.
Чтобы внести ясность: я хочу объединить типы A, B или C, а не объединение экземпляров A, B или C. Первый вариант: короче и, ИМХО, более читабельно.
Другими словами, учитывая эти определения:
class A:
pass

class B:
pass

class C:
pass

def foo(my_class: Type[Union[A, B, C]]):
pass

Я ожидаю, что это использование будет правильным:
foo(A) # pass the class A itself

Но не этот:
foo(A()) # pass an instance of A


Подробнее здесь: https://stackoverflow.com/questions/787 ... n-of-types

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