Skip to content

Commit d542bc4

Browse files
committed
feat: calculate age automatically based on birth year
1 parent 6820eb3 commit d542bc4

1 file changed

Lines changed: 11 additions & 5 deletions

File tree

generics.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,24 @@
11
from dataclasses import dataclass
22
from typing import List
3+
from datetime import date
34

45
@dataclass(frozen=True)
56
class Person:
67
name: str
7-
age: int
8+
birth_year: int
89
children: List["Person"]
910

10-
fatma = Person(name="Fatma", age=7, children=[])
11-
aisha = Person(name="Aisha", age=5, children=[])
12-
imran = Person(name="Imran", age=35, children=[fatma, aisha])
11+
@property
12+
def age(self) -> int:
13+
current_year = date.today().year
14+
return current_year - self.birth_year
15+
16+
fatma = Person(name="Fatma", birth_year=2018, children=[])
17+
aisha = Person(name="Aisha", birth_year=2020, children=[])
18+
imran = Person(name="Imran", birth_year=1990, children=[fatma, aisha])
1319

1420
def print_family_tree(person: Person) -> None:
15-
print(person.name)
21+
print(f"{person.name} ({person.age})")
1622
for child in person.children:
1723
print(f"- {child.name} ({child.age})")
1824

0 commit comments

Comments
 (0)