Skip to content

Appendix: Quick Reference#

Annotation Description Example
int, str, float, bool Basic built-in types age: int = 25
List[T], list[T] List containing items of type T scores: list[int]
Tuple[T, ...], tuple[T, ...] Tuple with specified item types coords: tuple[float, float]
Dict[K, V], dict[K, V] Dictionary with keys K, values V user_data: dict[str, int]
Set[T], set[T] Set containing items of type T tags: set[str]
Optional[T] Type T or None name: Optional[str]
Union[T1, T2] or T1 | T2 Either type T1 or T2 value: int | str
Callable[[Args], ReturnType] Function types adder: Callable[[int, int], int]
Literal["value"] Specific literal values mode: Literal["auto", "manual"]
Annotated[T, metadata] Type T with additional metadata UserID = Annotated[int, "primary key"]
NewType('Name', T) New distinct type based on type T UserId = NewType('UserId', int)
Protocol Structural typing protocol class Speaker(Protocol): ...

[Add links to introductions in book]

Term Definition
Annotation Explicit type declaration for variables, functions, or classes.
Duck Typing Determining an object's suitability based on presence of methods/attributes
Generics Type annotations parameterized by type variables.
Literal Types Types representing specific literal values.
Protocol Interface defined by structural compatibility, rather than explicit inheritance.
Stub Files Files (.pyi) containing type annotations without implementations.
Type Alias Simplified or descriptive alias for complex type annotations.
Type Checking Verification of type consistency either statically or at runtime.
Type Narrowing Refining variable types within specific control-flow branches.
Variance Rules describing subtype relationships between generic types (covariant, contravariant).
Static Typing Types checked before execution (compile-time).
Dynamic Typing Types determined and checked during execution (runtime).
Covariance Generic type that accepts subtypes as substitutes for its type parameter.
Contravariance Generic type that accepts supertypes as substitutes for its type parameter.
Invariant Generic type that requires exact type matches for its type parameters.