Generics done
This commit is contained in:
@ -23,10 +23,16 @@ def main():
|
||||
]
|
||||
)
|
||||
|
||||
user = employees.get_user_by_id(id=2)
|
||||
print("Found user:", user)
|
||||
employee = employees.get_user_by_id(id=2)
|
||||
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")
|
||||
print("CocaCola partners:")
|
||||
for partner in cocacola_partners:
|
||||
print(partner)
|
||||
|
||||
|
||||
@ -8,15 +8,6 @@ from lib.gen_2 import (
|
||||
|
||||
|
||||
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(
|
||||
[
|
||||
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"),
|
||||
]
|
||||
)
|
||||
employees[0]
|
||||
|
||||
partners = PartnerContainer(
|
||||
[
|
||||
@ -33,12 +23,17 @@ def main():
|
||||
Partner(id=103, first_name="Mate", last_name="Matić", company="Pepsi"),
|
||||
]
|
||||
)
|
||||
partners[0]
|
||||
|
||||
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")
|
||||
print("CocaCola partners:")
|
||||
for partner in cocacola_partners:
|
||||
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