如何解决Python Mypy:虽然子类实现了抽象属性,但无法实例化抽象类
我正在对抽象类的子类进行实例化的for循环,但mypy似乎无法确定它正在实例化实现抽象类的子类
我收到此错误: 无法实例化 具有抽象属性 'convert' 的抽象类 'AbstractDirConvertManager'
from abc import abstractmethod
class AbstractDirConvertManager:
def __init__(self,pack: Pack,input_path: str,server_version: Version,entity_dir_name: str = ''):
self.pack = pack
self.input_path = input_path
self.server_version = server_version
self.entity_dir_name = entity_dir_name
@abstractmethod
def convert(self):
pass
def should_convert(self) -> bool:
return self.is_dir_convert_manager_path() or self.is_pack_path()
def is_pack_path(self) -> bool:
return os.path.basename(os.path.dirname(self.input_path)) == PACKS_DIR
def is_dir_convert_manager_path(self) -> bool:
return os.path.basename(self.input_path) == self.entity_dir_name
class LayoutsDirConvertManager(AbstractDirConvertManager):
VERSION_6_0_0 = Version('6.0.0')
def __init__(self,server_version: Version):
super().__init__(pack,input_path,server_version,entity_dir_name='Layouts')
self.input_path: str = input_path
self.server_version = server_version
self.pack = pack
def convert(self):
if self.server_version >= self.VERSION_6_0_0:
layout_converter: LayoutBaseConverter = LayoutSixConverter(self.pack)
else:
layout_converter = LayoutBelowSixConverter(self.pack)
layout_converter.convert_dir()
class ClassifiersDirConvertManager(AbstractDirConvertManager):
def convert(self):
return "Todo"
def __init__(self,entity_dir_name='Classifiers')
有什么帮助吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。