如何解决如何为两个抽象类创建__add__函数
说我有一个抽象类,
return DriverManager.getConnection("jdbc:mysql://localhost:3306/projetojava","xxxxxxxxxx","xxxxxxxx");
我正在寻找一种将class Something:
def __init__(self,some):
self.some = some
@property
def thing(self):
thing_obj = self.build()
assert (thing_obj,some_addable_obj)
return thing_obj
@abstractmethod
def build(self):
raise NotImplementedError()
子类化的东西,即
__add__
现在,在class OneThing(Something):
def __init__(self):
super().__init__(some=None)
def build(self):
return some_addable_obj
class TwoThing(Something):
def __init__(self):
super().__init__(some=0)
def build(self):
return some_addable_obj
中,我想定义和Something
的功能如下:
__add__
但是,在上面的简化版本中,我遇到了一个错误:
def __add__(self,other):
sm = Something(some=self.some)
sm.thing = self.thing + other.thing
return sm
关于如何执行此操作的任何想法?
解决方法
将构建函数标记为抽象时,您的意思是“不要让任何人创建此类的具体实例,他们必须继承并实现构建”。
根据您要执行的操作,您可以将Something做成不实现build的具体类(只需删除装饰器),或者必须选择具体的类(OneThing或TwoThing)以从添加。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。