from typing import Protocol, runtime_checkable
@ runtime_checkable
class MyProtocol( Protocol) :
def func( ) : pass
class MyClass:
def func( ) : return 1
class MyClass2:
def func2( ) : return 1
class MyClass3:
def func( ) : return 1
def func2( ) : return 2
c = MyClass( )
c2 = MyClass2( )
c3 = MyClass3( )
print ( isinstance ( type ( c) , MyProtocol) )
print ( isinstance ( type ( c2) , MyProtocol) )
print ( isinstance ( type ( c3) , MyProtocol) )
ZnJvbSB0eXBpbmcgaW1wb3J0IFByb3RvY29sLCBydW50aW1lX2NoZWNrYWJsZQoKQHJ1bnRpbWVfY2hlY2thYmxlCmNsYXNzIE15UHJvdG9jb2woUHJvdG9jb2wpOgoJZGVmIGZ1bmMoKTogcGFzcwoKY2xhc3MgTXlDbGFzczoKCWRlZiBmdW5jKCk6IHJldHVybiAxCgpjbGFzcyBNeUNsYXNzMjoKCWRlZiBmdW5jMigpOiByZXR1cm4gMQoKY2xhc3MgTXlDbGFzczM6CglkZWYgZnVuYygpOiByZXR1cm4gMQoJZGVmIGZ1bmMyKCk6IHJldHVybiAyCgoKYyA9IE15Q2xhc3MoKQpjMiA9IE15Q2xhc3MyKCkKYzMgPSBNeUNsYXNzMygpCnByaW50KGlzaW5zdGFuY2UodHlwZShjKSwgTXlQcm90b2NvbCkpCnByaW50KGlzaW5zdGFuY2UodHlwZShjMiksIE15UHJvdG9jb2wpKQpwcmludChpc2luc3RhbmNlKHR5cGUoYzMpLCBNeVByb3RvY29sKSk=