Skip to content

Commit ce71241

Browse files
committed
Add generics exercise using List[Person] for type-safe children attribute
1 parent e9e8d65 commit ce71241

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

‎generics.py‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
from dataclasses import dataclass
2+
from typing import List
3+
4+
@dataclass(frozen=True)
5+
class Person:
6+
name: str
7+
age: int
8+
children: List["Person"]
9+
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])
13+
14+
def print_family_tree(person: Person) -> None:
15+
print(person.name)
16+
for child in person.children:
17+
print(f"- {child.name} ({child.age})")
18+
19+
print_family_tree(imran)

0 commit comments

Comments
 (0)