from abc import ABCMeta, abstractmethod
class SupportsAcquireAndRequire(metaclass=ABCMeta):
@abstractmethod
def acquire(self):
pass
@abstractmethod
def release(self):
pass
@classmethod
def __subclasshook__(cls, C):
for method in ('release', 'acquire'):
for B in C.__mro__:
if method in B.__dict__:
if B.__dict__[method] is None:
return NotImplemented
break
else:
return NotImplemented
return True
可以定义abstract base class (ABC)来指定接口:
这就是协议(如
typing.SupportsAbs
)的基本实现方式,尽管没有直接使用ABCMeta
。在通过给abca ^{} method ,您可以在}测试中使用它,这对于^{} 这样的工具来说已经足够好了:
^{pr2}$isinstance()
和{相关问题 更多 >
编程相关推荐