Skip to content

Commit 8922e28

Browse files
committed
exercise 8 completed
1 parent d7d72c1 commit 8922e28

2 files changed

Lines changed: 27 additions & 4 deletions

File tree

‎Sprint 5 Prep Exercises/exercise_7.py‎

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
from datetime import date
22

33
class Person:
4-
def __init__(self, name: str, age: int, preferred_operating_system: str, dob: date):
4+
def __init__(self, name: str, dob: date, preferred_operating_system: str):
55
self.name = name
6-
self.age = age
7-
self.preferred_operating_system = preferred_operating_system
86
self.dob = dob
7+
self.preferred_operating_system = preferred_operating_system
98

109
def is_adult(self):
1110
dob = self.dob
@@ -18,7 +17,7 @@ def is_adult(self):
1817
return True
1918

2019

21-
imran = Person("Imran", 22, "Ubuntu", date(2004, 8, 31))
20+
imran = Person("Imran", date(2004, 8, 31), "Ubuntu")
2221
print(imran.is_adult())
2322

2423
# Change the Person class to take a date of birth
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Write a Person class using @datatype which uses a datetime.date for date of birth, rather than an int for age.
2+
from dataclasses import dataclass
3+
from datetime import date
4+
5+
@dataclass(frozen=True)
6+
class Person:
7+
name: str
8+
dob: date
9+
preferred_operating_system: str
10+
11+
# Re-add the is_adult method to it.
12+
def is_adult(self):
13+
dob = self.dob
14+
today = date.today()
15+
if dob.year > today.year - 18: return False
16+
if dob.year == today.year - 18:
17+
if dob.month > today.month: return False
18+
if dob.month == today.month:
19+
if dob.day > today.day: return False
20+
return True
21+
22+
23+
imran = Person("Imran", date(2004, 8, 31), "Ubuntu")
24+
print(imran.is_adult())

0 commit comments

Comments
 (0)