До того как я повышен до Python 3.6 из питона 3.5 это работало:mypy различия в isinstance и issubclass от питона 3.5 до 3.6 в параметризованных дженериков
import typing
issubclass(list, typing.List[int]) # returns True
isinstance([1, 2 ,3], typing.List[int]) # returns True
теперь питона 3.6 Оба этих поднять следующее исключение:
TypeError: Parameterized generics cannot be used with class or instance checks
Это новое намеренное поведение или ошибка? Если он предназначен, как я могу выполнить проверки, выполняемые выше кодом в python 3.6?
Я не думаю, что они когда-либо проверяли типы элементов, поэтому '[" a "," b "," c "]' прошло бы 'isinstance ([" a "," b "," c " ], typing.List [int]) '. Внедренная семантика проверки не была полезна. – user2357112