Trước khi tôi nâng cấp lên python 3.6 từ python 3.5 này làm việc:khác biệt mypy trong isinstance và issubclass từ python 3,5-3,6 trong Generics tham số
import typing
issubclass(list, typing.List[int]) # returns True
isinstance([1, 2 ,3], typing.List[int]) # returns True
bây giờ trong python 3.6 cả hai nâng cao ngoại lệ sau đây:
TypeError: Parameterized generics cannot be used with class or instance checks
Hành vi dự định mới này hoặc lỗi? Nếu nó được dự định như thế nào tôi có thể thực hiện các kiểm tra mã ở trên đang làm trong python 3.6?
Tôi không nghĩ rằng họ đã từng kiểm tra các loại phần tử, do đó, '[" a "," b "," c "]' sẽ thông qua 'isinstance ([" a "," b "," c " ], typing.List [int]) '. Ngữ nghĩa thực hiện của kiểm tra không hữu ích. – user2357112