【发布时间】:2023-04-07 04:21:02
【问题描述】:
我在不同的文件中有以下类
class Fruit():
def __init__(self, value=0):
self.value = value
def __add__(self, other):
if type(self) == type(otro):
## PROBLEM AREA ##################################################
return type(self)(self.value + other.value)
else:
raise Exception.SumError(self, other) # Custom exception
def __repr__(self):
return f"{type(self).__name__}({self.value})"
Fruit()类是基类,下面两个子类都继承自该类
class Pear(Fruit):
"""docs"""
def __init__(self, quantity=0):
super().__init__(quantity)
self.unit = "Pe"
class Apple(Fruit):
"""docs"""
def __init__(self, quantity=0):
super().__init__(quantity)
self.unit = "Ap"
结果中需要的类如下:
class Market_List():
"""docs"""
def __init__(self, value=0):
self.value = value
目前我可以用Pears() 和Apples() 用Apples() 添加Pears(),我的问题是如何让用Apples() 添加Pears() 给我一个Market_List() 对象。我已经尝试在 Fruit() 类的开头使用from market_list import Market_List
,但是想在 Market_List() 类中做同样的事情来做逆运算然后它进入一个循环并给我一个错误
【问题讨论】:
标签:
python-3.x
class
inheritance
operator-overloading
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:运算符重载如何在 Python 中返回第三个类? - Python技术站