I've a code like this.
class salesperson:
def __init__(self, name):
self.name=name
self.market_price=0
self.quantity=0
self.product_name=0
#if self.product_name != self.product_name:
#self.finalamount=0
def buy_pro(self, product_name, market_price, quantity):
self.product_name = product_name
self.market_price=market_price
self.quantity=quantity
self.a= ({self.product_name: [self.market_price, self.quantity]})
def get_value(self):
#self.buyproduct()
finalamount = self.market_price * -self.quantity
return finalamount
def get_name(self):
return (self.name)
def get_record(self):
return (self.a)
input:
sp_name=salesperson('name')
sp_name.buy_pro('mobile',30,20)
sp_name.get_value()
sp_name.get_record()
output:
600
Explanation(30*20 =600)
Know, If I give same input with same item name, Then record should be updated.
Example:
sp_name.buy_pro('mobile',10,2)
sp_name.get_value()
sp_name.get_record()
Expected output:
620
Explination(As item name is same (600(previous value) (10*2)20= 620
But output I'm getting.
20
Can you guys pls suggest what Is the logic I can use that previous value is added to current input if product name is same?
CodePudding user response:
use these codes under def init():
self.last=""
self.finalamount=0
and use this get_value():
def get_value(self):
if self.last == self.name:
self.finalamount = self.market_price * self.quantity
else:
self.finalamount = self.market_price * self.quantity
self.last=self.name
return self.finalamount
or you can create a list of last_names for compare with after names
fullcode:
class salesperson:
def __init__(self, name):
self.name=name
self.market_price=0
self.quantity=0
self.product_name=0
self.last=""
self.finalamount=0
def buy_pro(self, product_name, market_price, quantity):
self.product_name = product_name
self.market_price=market_price
self.quantity=quantity
self.a= ({self.product_name: [self.market_price, self.quantity]})
def get_value(self):
if self.last == self.name:
self.finalamount = self.market_price * self.quantity
else:
self.finalamount = self.market_price * self.quantity
self.last=self.name
return self.finalamount
def get_name(self):
return (self.name)
sp_name=salesperson('name')
sp_name.buy_pro('mobile',30,20)
print(sp_name.get_value())
sp_name.buy_pro('mobile',10,2)
print(sp_name.get_value())
CodePudding user response:
in method buy_pro the line which states self.quantity=quantity
should be self.quantity = quantity
This will update the self.quantity value with the current order quatity