Generics done
This commit is contained in:
@ -23,10 +23,16 @@ def main():
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
user = employees.get_user_by_id(id=2)
|
employee = employees.get_user_by_id(id=2)
|
||||||
print("Found user:", user)
|
print("Found employee:", employee)
|
||||||
|
|
||||||
|
developers = employees.get_by_department("Dev")
|
||||||
|
print("Developers:")
|
||||||
|
for employee in developers:
|
||||||
|
print(employee)
|
||||||
|
|
||||||
cocacola_partners = partners.get_by_company(company="CocaCola")
|
cocacola_partners = partners.get_by_company(company="CocaCola")
|
||||||
|
print("CocaCola partners:")
|
||||||
for partner in cocacola_partners:
|
for partner in cocacola_partners:
|
||||||
print(partner)
|
print(partner)
|
||||||
|
|
||||||
|
|||||||
@ -8,15 +8,6 @@ from lib.gen_2 import (
|
|||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
users = UserContainer[Employee](
|
|
||||||
[
|
|
||||||
Employee(id=1, first_name="Pero", last_name="Perić", department="Dev"),
|
|
||||||
Employee(id=2, first_name="Mirko", last_name="Mirković", department="Dev"),
|
|
||||||
Employee(id=3, first_name="Ivo", last_name="Ivić", department="Sales"),
|
|
||||||
]
|
|
||||||
)
|
|
||||||
users[0]
|
|
||||||
|
|
||||||
employees = EmployeeContainer(
|
employees = EmployeeContainer(
|
||||||
[
|
[
|
||||||
Employee(id=1, first_name="Pero", last_name="Perić", department="Dev"),
|
Employee(id=1, first_name="Pero", last_name="Perić", department="Dev"),
|
||||||
@ -24,7 +15,6 @@ def main():
|
|||||||
Employee(id=3, first_name="Ivo", last_name="Ivić", department="Sales"),
|
Employee(id=3, first_name="Ivo", last_name="Ivić", department="Sales"),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
employees[0]
|
|
||||||
|
|
||||||
partners = PartnerContainer(
|
partners = PartnerContainer(
|
||||||
[
|
[
|
||||||
@ -33,12 +23,17 @@ def main():
|
|||||||
Partner(id=103, first_name="Mate", last_name="Matić", company="Pepsi"),
|
Partner(id=103, first_name="Mate", last_name="Matić", company="Pepsi"),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
partners[0]
|
|
||||||
|
|
||||||
employee = employees.get_user_by_id(id=2)
|
employee = employees.get_user_by_id(id=2)
|
||||||
print("Found user:", employee)
|
print("Found employee:", employee)
|
||||||
|
|
||||||
|
developers = employees.get_by_department("Dev")
|
||||||
|
print("Developers:")
|
||||||
|
for employee in developers:
|
||||||
|
print(employee)
|
||||||
|
|
||||||
cocacola_partners = partners.get_by_company(company="CocaCola")
|
cocacola_partners = partners.get_by_company(company="CocaCola")
|
||||||
|
print("CocaCola partners:")
|
||||||
for partner in cocacola_partners:
|
for partner in cocacola_partners:
|
||||||
print(partner)
|
print(partner)
|
||||||
|
|
||||||
|
|||||||
25
generics_registry.py
Normal file
25
generics_registry.py
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
from typing import Dict, Generic, TypeVar
|
||||||
|
|
||||||
|
|
||||||
|
T = TypeVar("T")
|
||||||
|
|
||||||
|
|
||||||
|
class Registry(Generic[T]):
|
||||||
|
def __init__(self) -> None:
|
||||||
|
self._store: Dict[str, T] = {}
|
||||||
|
|
||||||
|
def set_item(self, key: str, value: T) -> None:
|
||||||
|
self._store[key] = value
|
||||||
|
|
||||||
|
def get_item(self, key: str) -> T:
|
||||||
|
return self._store[key]
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
family_name_reg = Registry[str]()
|
||||||
|
family_age_reg = Registry[int]()
|
||||||
|
|
||||||
|
family_name_reg.set_item("husband", "steve")
|
||||||
|
family_name_reg.set_item("dad", "john")
|
||||||
|
|
||||||
|
family_age_reg.set_item("steve", 30)
|
||||||
Reference in New Issue
Block a user