Skip to content

Commit 7adf6a4

Browse files
committed
Adding OOP
1 parent d025557 commit 7adf6a4

File tree

4 files changed

+118
-0
lines changed

4 files changed

+118
-0
lines changed

Python/OOP/car.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
class Car:
2+
# private attributes
3+
__wheels = 4
4+
__doors = 4
5+
6+
# attributes
7+
color = "Black"
8+
9+
def __init__(self, color, brand, speed):
10+
self.color = color
11+
self.brand = brand
12+
self.speed = speed
13+
14+
# @staticmethod
15+
def drive(self):
16+
self.speed += 10
17+
18+
return f"The {self.color} {self.brand} is driving at {self.speed} mph."
19+
20+
@classmethod
21+
def get_wheels(cls):
22+
return cls.__wheels
23+
24+
25+
car_1 = Car("Red", "Toyota", 120)
26+
27+
print(car_1.color)
28+
29+
car_1.color = "Blue"
30+
31+
print(car_1.color)
32+
33+
# print(Car.color)
34+
35+
print(car_1.drive())
36+
37+
# print(Car.drive(car_1))
38+
39+
print(car_1.get_wheels())

Python/OOP/inheritance.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import car
2+
3+
class SportCar(car.Car):
4+
def turbo(self):
5+
self.speed += 30
6+
7+
return f"The {self.color} {self.brand} is now turbocharged at {self.speed} mph."
8+
9+
# override
10+
def drive(self):
11+
self.speed += 20
12+
13+
return f"The {self.color} {self.brand} is driving fast at {self.speed} mph."
14+
15+
# super
16+
def super_drive(self):
17+
base_drive = super().drive()
18+
return f"{base_drive} with super drive!"
19+
20+
sport_car_1 = SportCar("Yellow", "Ferrari", 150)
21+
22+
print(sport_car_1.turbo())
23+
print(sport_car_1.drive())
24+
print(sport_car_1.super_drive())

Python/OOP/main.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
class Car:
2+
def __init__(self, make, model, year):
3+
self.make = make
4+
self.model = model
5+
self.year = year
6+
self.odometer_reading = 0
7+
8+
def get_descriptive_name(self):
9+
return f"{self.year} {self.make} {self.model}"
10+
11+
def read_odometer(self):
12+
return f"This car has {self.odometer_reading} miles on it."
13+
14+
def update_odometer(self, mileage):
15+
if mileage >= self.odometer_reading:
16+
self.odometer_reading = mileage
17+
else:
18+
print("You can't roll back an odometer!")
19+
20+
def increment_odometer(self, miles):
21+
if miles >= 0:
22+
self.odometer_reading += miles
23+
else:
24+
print("You can't increment the odometer with negative miles!")
25+
26+
27+
my_car = Car('Toyota', 'Corolla', 2020)
28+
29+
print(my_car.get_descriptive_name())
30+
print(my_car.read_odometer())
31+
32+
my_car.update_odometer(15000)
33+
print(my_car.read_odometer())
34+
35+
my_car.increment_odometer(500)
36+
print(my_car.read_odometer())
37+
38+
my_car.update_odometer(14000) # This should trigger the rollback warning

Python/OOP/test.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class Animal:
2+
def __init__(self, name, age, species):
3+
self.name = name
4+
self.age = age
5+
self.species = species
6+
7+
class Cat(Animal):
8+
def description(self):
9+
return f"{self.name} is a {self.age}-year-old {self.species}."
10+
11+
def sound(self):
12+
return "Meow!"
13+
14+
myCat = Cat("Neko", 3, "Persian")
15+
16+
print(myCat.description())
17+
print(myCat.sound())

0 commit comments

Comments
 (0)