2017-07-12 104 views
-1

这里是我的代码:购物车。错误

print ("Welcome to our Shop") 

class Item: 
    def __init__(self, name, price): 
     self.name = name 
     self.price = price 

    def getName(self):  #Returning name of Item. 
     return self.name 
    def getPrice(self): #Returning price of Item. 
     return self.price 

class Cart: 
    def __init__(self, list): 
     self.list = []   #List is Cart, you will store items in it. 

    def addItem(self, item): 
     self.item = list.append(self.list) #Adding item to Cart(List). 

    def getTotal(self):  #Total price. Your bill. 
     total = 0 
     for item in self.list: 
      total += price 
      return total 

    def numItems(self):  #Number of items in your cart. 
     items = 0 
     for item in self.list: 
      items += item 

def kart(): 
    item1 = Item("Xbox", 350) 
    item2 = Item("Controller", 50)  #Items to buy. 
    item3 = Item("LED TV 55", 550) 
    k = Cart()       #Calling Cart Class. 
    k.addItem(item1) 
    k.addItem(item2)     #Adding Items. 
    k.addItem(item3) 
    print ("You have %i items in your cart for a total of %s $" %(k.numItems(), k.getTotal())) 

korpa = kart()  

我在最后得到错误。它说

Welcome to our ShoTraceback (most recent call last): 
File "C:\Users\Marko\Documents\Projects\EbayCart.py", line 41, in <module> 
p 
korpa = kart()       
File "C:\Users\Marko\Documents\Projects\EbayCart.py", line 35, in kart 
k = Cart()       #Calling Cart Class. 
TypeError: __init__() takes exactly 2 arguments (1 given) 
[Finished in 0.1s with exit code 1]     

我读

__init__() takes exactly 2 arguments (1 given) 

职位,但它并没有在我的情况有所帮助。 你有什么想法是什么问题? 我现在正在学习Classes,这就是这段代码的目的。 感谢您的帮助。

+1

看看你的'Cart .__ init__'。需要多少参数?二。你提供了多少个?只有一个(隐含的“自我”)。另外,'self.item = list.append(self.list)'看起来很奇怪,会导致另一个错误。更多的是,缩进在'Cart.getTotal'中关闭。最后,'Cart.numItems'返回'None',这不是你想要的。 – ForceBru

+0

即你需要指定'list'。 – patrick

回答

0

Cart的__init__需要参数list,您可能不需要提供它,因为它只是一个空的列表,您将在后面填写。你可以改变类初始化到

def __init__(self): 
    self.list = [] 

添加的项目到列表中也没有工作,因为它应该,但我认为这是更好,如果你第一次尝试自行解决这个问题... :)

1

您正在定义购物车的init有一个列表参数

def __init__(self, list) 

但随后调用它不带参数:

k = Cart() 

根据你的初始化定义,你就必须有一个空列表通过像

k = Cart([]) 

创建一个实例。但是当你仔细看的init功能,您看,其实你不使用list,所以就这样下降吧:

class Cart: 
    def __init__(self): 
     self.list = []   #List is Cart, you will store items in it.