Skip to content

Commit d691338

Browse files
committed
enums and inheritance exercises
1 parent 370025e commit d691338

2 files changed

Lines changed: 64 additions & 0 deletions

File tree

prep-exercises/enums.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
from enum import Enum
2+
from dataclasses import dataclass
3+
4+
5+
class OS(Enum):
6+
UBUNTU = "Ubuntu"
7+
MAC = "Mac"
8+
WINDOWS = "Windows"
9+
10+
11+
@dataclass
12+
class Laptop:
13+
model: str
14+
os: OS
15+
16+
17+
@dataclass
18+
class Person:
19+
name: str
20+
age: int
21+
preferred_os: OS
22+
23+
24+
laptops = [
25+
Laptop("Dell", OS.UBUNTU),
26+
Laptop("MacBook", OS.MAC),
27+
Laptop("HP", OS.WINDOWS),
28+
]
29+
30+
person = Person("Ali", 22, OS.UBUNTU)
31+
32+
33+
def match(laptops, person):
34+
result = []
35+
for l in laptops:
36+
if l.os == person.preferred_os:
37+
result.append(l)
38+
return result
39+
40+
41+
print(match(laptops, person))

prep-exercises/inheritance.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
class Animal:
2+
def __init__(self, name):
3+
self.name = name
4+
5+
def speak(self):
6+
return "some sound"
7+
8+
9+
class Dog(Animal):
10+
def speak(self):
11+
return "Woof!"
12+
13+
14+
class Cat(Animal):
15+
def speak(self):
16+
return "Meow!"
17+
18+
19+
dog = Dog("Rex")
20+
cat = Cat("Milo")
21+
22+
print(dog.name, dog.speak())
23+
print(cat.name, cat.speak())

0 commit comments

Comments
 (0)