2017-07-12 72 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.