extending generic dict python code example
Example 1: python template generics
from typing import TypeVar, Generic
T = TypeVar('T')
class Stack(Generic[T]):
def __init__(self) -> None:
self.items: List[T] = []
def push(self, item: T) -> None:
self.items.append(item)
def pop(self) -> T:
return self.items.pop()
def empty(self) -> bool:
return not self.items
Example 2: specify return type python function
def greeting(name: str) -> str:
return 'Hello, {}'.format(name)
Example 3: extending dictionary class python
class TwoWayDict(dict):
def __delitem__(self, key):
value = super().pop(key)
super().pop(value, None)
def __setitem__(self, key, value):
if key in self:
del self[self[key]]
if value in self:
del self[value]
super().__setitem__(key, value)
super().__setitem__(value, key)
def __repr__(self):
return f"{type(self).__name__}({super().__repr__()})"