from datetime import date
from dateutil.relativedelta import relativedelta
class Product:
name = ""
def __init__(self):
print("super class Product")
def getExpDate():
print("Expiry date")
pass
class Snack(Product):
shelfLife = 6
price = 0
def __init__(self, name, price):
self.name = name
self.price = price
def printDetails(self):
print("name : " + self.name)
print("price : " + str(self.price))
print("shelf life : " + str(self.shelfLife) + " months")
def getExpDate(self, pkdDate):
expDate = pkdDate + relativedelta(months=self.shelfLife)
return expDate
class Beverage(Product):
shelfLife = 2
price = 0
def __init__(self, name, price):
self.name = name
self.price = price
def printDetails(self):
print("name : " + self.name)
print("price : " + str(self.price))
print("shelf life : " + str(self.shelfLife) + " years")
def getExpDate(self, pkdDate):
expDate = pkdDate + relativedelta(years=self.shelfLife)
return expDate
class Staples(Product):
shelfLife = 1
price = 0
def __init__(self, name, price):
self.name = name
self.price = price
def printDetails(self):
print("name : " + self.name)
print("price : " + str(self.price))
print("shelf life : " + str(self.shelfLife) + " year")
def getExpDate(self, pkdDate):
expDate = pkdDate + relativedelta(years=self.shelfLife)
return expDate
def main():
s = Snack('cookies', 60)
s.printDetails()
print(s.name + " will expire on " +
str(s.getExpDate(date(2019, 10, 3))) + "months")
p = Product()
st = Staples('rice', 300)
st.printDetails()
print(st.name + " will expire on " + str(st.getExpDate(date(2020, 1, 23))))
b = Beverage('coffee', 250)
b.printDetails()
print(b.name + " will expire on " + str(b.getExpDate(date(2018, 12, 17))))
print("done till here")
if __name__ == '__main__':
main()