尝试在python3中创建一个程序,该程序将从一个类item
创建的对象转移到另一个类shoppingCart
。其思想是使用item
类创建一个对象列表,同时仍然能够访问item
类的属性,如价格和数量。在
class item:
def __init__(self,n,p,q):
self.name = n
self.price = p
self.quantity = q
def show(self):
z = (str(self.name))
print(z)
self1 =("$")+(str(self.price))
print(self1)
def getName(self):
return self.name
def getPrice(self):
return ("$") + str(self.price)
def getQuantity(self):
return self.quantity
class shoppingCart:
def __init__(self, items):
self.items = []
def show(self):
print(self.items)
def addItem(self,item):
if item not in self.items:
self.items.append(item)
else:
item.q += 1
def deleteItem(self,item):
if item in self.items:
self.items.remove(item)
else:
return print("Not in Cart")
def checkOut (self):
total = 0
for i in self.items:
price = i[1]
total += price
return total
item1 = item("Chocolate",5 ,3)
item2 = item("Bacon",15,1)
item3 = item("Eggs",2,5)
c = shoppingCart([])
c.addItem(item1)
c.addItem(item2)
c.addItem(item3)
c.show()
print ("You have 3 items in your cart for a total of" (c.checkOut()))
c.removeItem(item3)
print ("You have 2 items in your cart for a total of" (c.checkOut()))
上面的代码当前创建了两个错误,首先,c.show正在打印附加到购物车的对象的id。另外,checkOut
方法会产生一个关于price = i[1]
的错误,说明item
对象不支持索引。这个问题的替代解决方案仍然与我的原始代码有一些相似之处,这将是受欢迎的!在
首先,},所以您只能使用默认表示。试试看
c.show()
打印列表,但是您还没有为您的类定义__str__
或{然后您可以:
^{pr2}$或者,使用您的
item.show
:第二,在
checkOut
中,i
是一个item
,您不能将其索引到其中。如果你想要它的价格,使用点符号:i.price
。在相关问题 更多 >
编程相关推荐