我是新来的经营者超载,所以请容忍我。我有一个带有操作符重载__lt__
的类,它应该打印列表的排序结果,但是我得到了错误'<' not supported between instances of 'Inventory' and 'Inventory'
。为什么sort方法不能对列表的内容进行排序。我哪里出错了?感谢您的帮助。提前谢谢
class Inventory:
def __init__(self, item, cost):
self.item = item
self.cost = cost
def __str__(self):
return "{:16s} ${:6.2f}".format(self.item, self.cost)
def __lt__(self, other):
return Inventory(self.cost < other.cost)
i1 = Inventory("Pentel Pen", 1.45)
i2 = Inventory("Ruler", .99)
i3 = Inventory("Calculus Text", 245.99)
i4 = Inventory("Diet Coke", 1.80)
t = [i1, i2, i3, i4]
t = [i1, i2, i3, i4]
for i in sorted(t):
print(i)
Expected result:
Ruler $ 0.99
Pentel Pen $ 1.45
Diet Coke $ 1.80
Calculus Text $245.99
将您的方法替换为:
inventory1 < inventory2
应返回True
或False
以进行排序,而不是Inventory
的实例相关问题 更多 >
编程相关推荐