Skip to content

Commit dedfc11

Browse files
committed
generics
1 parent 5cb4ece commit dedfc11

1 file changed

Lines changed: 20 additions & 0 deletions

File tree

familytree.py

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

0 commit comments

Comments
 (0)