我想使用 mypy 检查 python 代码库。
在使用 mypy 注释 AbstractBaseClasses 时遇到两个问题:
NotImplemented? not callable
错误:class AbstractClass(ABC):
@abstractmethod
def get_something(self) -> List[str]:
raise NotImplemented(f'You need to implement `get_something`!')
这里的动机是,当有人没有实现该方法时,我想显式引发异常。
-> CustomClass
签名class AnotherABC(ABC):
@abstractmethod
def info(self) -> CustomClass:
self.logger.info('Info called')
pass # Cannot create CustomClass here -> not enough information
最后决定:
@abstractmethod
def get_something(self) -> List[str]:
"""some small description"""