Quick actions

cmd+k|ctrl+k

Navigation

Languages

Bicycle Classes

Snippet info

Language

Python

Visibility

public

Author

fizznakle

Created

2017-03-23T07:22:09Z

Updated

2017-03-30T16:00:47Z

class Bicycle:
#Have a model name
#Have a weight
#Have a cost to produce

    def __init__(self,name,weight,prod_cost):
        self.name = name
        self.weight = weight
        self.prod_cost = prod_cost
        self.retail_cost = 0 
    def __repr__(self):
        return self.name

class Shop:
#Have a name
#Have an inventory of different bicycles
#Sell bicycles with a margin over their cost
#Can see how much profit they have made from selling bikes

    def __init__(self,name,inventory,margin):
        self.name = name
        self.inventory = inventory
        self.margin = margin
        self.profit = 0 
        
        for bike in self.inventory.keys():
            bike.retail_cost = int(self.margin * bike.prod_cost)
        
class Customer:
#Have a name
#Have a fund of money to buy a bike
#Can buy and own a new bicycle

    def __init__(self,name,funds):
        self.name = name
        self.funds = funds
        for money in self.inventory.keys():
            money.wallet = self.funds - bike.retail_cost
    
    def purchase(self,bike,shop):
        shop.inventory[bike] -= 1
    
    
#BICYCLES: Name, Weight, Cost
drift = Bicycle("Drift Bike",12,650)
road = Bicycle("Road Bike",11,170)
beach = Bicycle("Beach Bike",10,180)
mountain = Bicycle("Mountain Bike",12,1600)
bmx = Bicycle("BMX Bike",8,450)
uni = Bicycle("Unicycle",5,250)

#SHOP: Name, Inventory, Margin(profit)
red_cycle = Shop("Red Cycle",{
    drift: 1, 
    road: 12, 
    beach: 2,
    mountain: 14,
    bmx: 2,
    uni: 0
}, 1.1)

#CUSTOMER: Name, Funds
c1 = Customer("Steve",200)
c2 = Customer("Jim",500)
c3 = Customer("Joe",1000)

#process example, inventory before and after purchase 
print(c1.funds)
print (red_cycle.inventory)
c1.purchase(drift, red_cycle)
print ("The Drift Bike costs: " + str(drift.retail_cost))
print (red_cycle.inventory)
print (c1.funds)
INFO