Type hints in Python are an excellent tool for improving code quality and maintainability, especially in larger projects.
from typing import Optional
class TreeNode:
def __init__(self, value: int) -> None:
self.value = value
self.left: Optional['TreeNode'] = None
self.right: Optional['TreeNode'] = None
#clcoding.com
class LinkedListNode:
def __init__(self, value: int, next_node: 'LinkedListNode' = None) -> None:
self.value = value
self.next = next_node
#clcoding.com
from typing import Optional
class TreeNode:
def __init__(self, value: int) -> None:
self.value = value
self.left: Optional['TreeNode'] = None
self.right: Optional['TreeNode'] = None
#clcoding.com
from typing import TypeVar
class Animal:
def speak(self) -> str:
raise NotImplementedError
class Dog(Animal):
def speak(self) -> str:
return "Woof!"
T = TypeVar('T', bound=Animal)
def make_sound(animal: T) -> str:
return animal.speak()
#clcoding.com
from typing import Callable
def apply_func(func: Callable[[int, int], int], a: int, b: int) -> int:
return func(a, b)
#clcoding.com
from typing import Iterable, TypeVar
T = TypeVar('T')
def process_items(items: Iterable[T]) -> None:
for item in items:
# Process each item
pass
#clcoding.com
from typing import TypeVar, Iterable
T = TypeVar('T')
def first_element(items: Iterable[T]) -> T:
return next(iter(items))
#clcoding.com
from typing import List, Tuple
Point = Tuple[int, int]
Polygon = List[Point]
def area(polygon: Polygon) -> float:
# Calculate area of polygon
pass
#clcoding.com