问题描述
我正在对抽象类的子类进行实例化的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 (将#修改为@)