Skip to content

Instantly share code, notes, and snippets.

@onitonitonito
Created June 1, 2017 04:43
Show Gist options
  • Save onitonitonito/1907b0b01a52d518cbfdfc2fa63b9f3c to your computer and use it in GitHub Desktop.
Save onitonitonito/1907b0b01a52d518cbfdfc2fa63b9f3c to your computer and use it in GitHub Desktop.
Python, Object Oriented Programming -- Drill #01. Speed Up Your Car!
FORM_INTRO='''\
=================================
\tVEHICLE INFORMATION
---------------------------------
1. MODEL : %s (%s)
2. MAX SPEED : %d km/h
3. ACCELARAT : +_ %d kmh
4. STATUS : %d kmh
---------------------------------\n\n\n'''
class Car(object):
def __init__(self,arg_model):
self.attr = {
'MODEL' : arg_model,
'KIND' : 'Normal',
'MAX_SPEED' : 130,
'SPEED' : 0,
'S_ABLE' : 20,
}
print('NEW CAR!! has come..........')
print(self.__str__())
def __str__(self):
self.intro = FORM_INTRO %(
self.attr['MODEL'],self.attr['KIND'],self.attr['MAX_SPEED'],
self.attr['S_ABLE'],self.attr['SPEED'], )
return self.intro
def speed_up(self):
self.attr['SPEED'] += self.attr['S_ABLE']
if self.attr['SPEED'] <= self.attr['MAX_SPEED']:
print("%s: SPEED IS UP! .... NOW %s km/h" %(self.attr['MODEL'],self.attr['SPEED'],) )
else:
self.attr['SPEED'] = self.attr['MAX_SPEED']
print("\nSORRY! SPEED IS LIMITED! @ %s km/h" %self.attr['SPEED'])
print(self.__str__())
def speed_down(self):
self.attr['SPEED'] -= self.attr['S_ABLE']
if self.attr['SPEED'] >= 0:
print("%s: SPEED IS DOWN! .... NOW %s km/h" %(self.attr['MODEL'],self.attr['SPEED'],) )
else:
self.attr['SPEED'] = 0
print("\nSORRY! CAR STOPPED! @ %s km/h" %self.attr['SPEED'])
print(self.__str__())
class SportCar(Car):
def __init__(self,arg_model):
self.attr = {
'MODEL' : arg_model,
'KIND' : 'Racing',
'MAX_SPEED' : 300,
'SPEED' : 0,
'S_ABLE' : 60,
}
print('NEW CAR!! has come..........')
print(self.__str__())
class Truck(Car):
def __init__(self,arg_model):
self.attr = {
'MODEL' : arg_model,
'KIND' : 'Truck',
'MAX_SPEED' : 80,
'SPEED' : 0,
'S_ABLE' : 10,
}
print('NEW CAR!! has come..........')
print(self.__str__())
class Cart(Car):
def __init__(self,arg_model):
self.attr = {
'MODEL' : arg_model,
'KIND' : 'Cart?',
'MAX_SPEED' : 5,
'SPEED' : 0,
'S_ABLE' : 1,
}
print('NEW CAR has come..........!!?? Crazy??')
print(self.__str__())
from package_i.model_car import *
a = Car('ACCENT')
b = Car('ODYSSAY')
a.speed_up()
a.speed_up()
a.speed_up()
a.speed_up()
a.speed_up()
a.speed_up()
a.speed_up()
b.speed_up()
b.speed_up()
b.speed_up()
print()
b.speed_down()
b.speed_down()
b.speed_down()
b.speed_down()
c = SportCar('Porsche')
d = Truck('Scannia')
e = Cart('SuperMarket')
@onitonitonito
Copy link
Author

Result.

  • Short, simple, approachable, relaxing, OOP example!

May.. [Mark▼] be with @unins @FunXD @onito
MD

NEW CAR!! has come..........
=================================
	VEHICLE INFORMATION
---------------------------------
1. MODEL     : ACCENT (Normal)
2. MAX SPEED :      130 km/h
3. ACCELARAT :   +_ 20 kmh
4. STATUS    :      0 kmh
---------------------------------



NEW CAR!! has come..........
=================================
	VEHICLE INFORMATION
---------------------------------
1. MODEL     : ODYSSAY (Normal)
2. MAX SPEED :      130 km/h
3. ACCELARAT :   +_ 20 kmh
4. STATUS    :      0 kmh
---------------------------------



ACCENT: SPEED IS UP! .... NOW 20 km/h
ACCENT: SPEED IS UP! .... NOW 40 km/h
ACCENT: SPEED IS UP! .... NOW 60 km/h
ACCENT: SPEED IS UP! .... NOW 80 km/h
ACCENT: SPEED IS UP! .... NOW 100 km/h
ACCENT: SPEED IS UP! .... NOW 120 km/h

SORRY! SPEED IS LIMITED! @ 130 km/h
=================================
	VEHICLE INFORMATION
---------------------------------
1. MODEL     : ACCENT (Normal)
2. MAX SPEED :      130 km/h
3. ACCELARAT :   +_ 20 kmh
4. STATUS    :      130 kmh
---------------------------------



ODYSSAY: SPEED IS UP! .... NOW 20 km/h
ODYSSAY: SPEED IS UP! .... NOW 40 km/h
ODYSSAY: SPEED IS UP! .... NOW 60 km/h

ODYSSAY: SPEED IS DOWN! .... NOW 40 km/h
ODYSSAY: SPEED IS DOWN! .... NOW 20 km/h
ODYSSAY: SPEED IS DOWN! .... NOW 0 km/h

SORRY! CAR STOPPED! @ 0 km/h
=================================
	VEHICLE INFORMATION
---------------------------------
1. MODEL     : ODYSSAY (Normal)
2. MAX SPEED :      130 km/h
3. ACCELARAT :   +_ 20 kmh
4. STATUS    :      0 kmh
---------------------------------



NEW CAR!! has come..........
=================================
	VEHICLE INFORMATION
---------------------------------
1. MODEL     : Porsche (Racing)
2. MAX SPEED :      300 km/h
3. ACCELARAT :   +_ 60 kmh
4. STATUS    :      0 kmh
---------------------------------



NEW CAR!! has come..........
=================================
	VEHICLE INFORMATION
---------------------------------
1. MODEL     : Scannia (Truck)
2. MAX SPEED :      80 km/h
3. ACCELARAT :   +_ 10 kmh
4. STATUS    :      0 kmh
---------------------------------



NEW CAR has come..........!!?? Crazy??
=================================
	VEHICLE INFORMATION
---------------------------------
1. MODEL     : SuperMarket (Cart?)
2. MAX SPEED :      5 km/h
3. ACCELARAT :   +_ 1 kmh
4. STATUS    :      0 kmh
---------------------------------



[Finished in 1.514s]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment