2017-02-23 8 views
0
class Store(object): 
    def __init__(self) : 
     self.total_cost=0 
     self.goods={} 
    def add_goods(self,goods_name,quantity,cost) : 
     cost=cost*quantity 
     self.total_cost=self.total_cost+cost 
     self.goods[goods_name]=quantity 
Q_store=Store() 
Q_store.add_goods('shirt',5,10) 
print (Q_store.goods) 
print (Q_store.total_goods) 
# it resulted to {'shirt':5} 
# total_goods= 50 
Q_store.add_goods('shirt', 5,10) 
print (Q_store.goods) 
# it's quantity remains 5 
# the answer remains 5 

Beim Wieder Aufruf der Methode und das Drucken auf jedem Aufruf aktualisiert machen, bleibt die Menge 5 statt 10. Wie kann ich die Methode ermöglichen bei jedem Aufruf die Menge zu halten Einstellung ? Weil es scheint, dass die Quantität konstant bleibt. Vielen Dank im Voraus.Wie kann ich diese Methode die Menge

+0

Können Sie uns zeigen, wie genau nennen Sie diese Methode? – MaLiN2223

+0

Ich machte Q_store als Klasseninstanz – Udonse

+0

Q_store.add_goods ('Shirt', 5,10) – Udonse

Antwort

0

Sie sind hier:

class Store(object): 
    def __init__(self) : 
     self.total_cost=0 
     self.goods={} 
     self.total_goods =() 
    def add_goods(self,goods_name,quantity,cost) : 
     cost*=quantity 
     self.total_cost+=cost 
     if goods_name in self.goods: 
      self.goods[goods_name]+=quantity 
     else: 
      self.goods[goods_name]=quantity 

Q_store=Store() 
Q_store.add_goods('shirt',5,10) 
print (Q_store.goods) 
print (Q_store.total_cost) 
Q_store.add_goods('shirt', 5,10) 
print (Q_store.goods) 
print (Q_store.total_cost) 

ich Ihren Code geändert arbeiten zu sein. Was Sie vermisst haben, war + = zum Warenverzeichnis.

+0

Wow vielen Dank .. Ich habe das nicht erkannt .. Bin so dankbar – Udonse

+0

@Udonse kein Problem. Denken Sie daran, [diese Antwort zu akzeptieren] (http://stackoverflow.com/help/someone-answers), wenn Sie denken, dass dies der richtige ist. – MaLiN2223

+0

Danke .. So sehr dankbar für Ihre Hilfe – Udonse

Verwandte Themen