Python中的协议(也称为结构子类型)是什么?

Python中的协议(也称为结构子类型)是什么?,python,python-3.x,subtyping,Python,Python 3.x,Subtyping,有一个类似的问题,但没有答案 请参阅。请参阅。 from typing import SupportsInt class C1(): def __int__(self) -> int: return 42 class C2(C1): pass >>>c = C2() >>>print(int(c)) 42 >>>print(isinstance(c, C1)) True >>> t

有一个类似的问题,但没有答案

请参阅。请参阅。
from typing import SupportsInt
class C1():
    def __int__(self) -> int:
        return 42
class C2(C1):
    pass


>>>c = C2()
>>>print(int(c))
42
>>>print(isinstance(c, C1))
True

>>> type(typing.SupportsInt)
<class 'typing._ProtocolMeta'>
>>> isinstance(5, typing.SupportsInt)
...
TypeError: Protocols cannot be used with isinstance().