Specification for the Python type systemΒΆ
Contents:
- The Python Type System
- Meta-topics
- Type system concepts
- Type annotations
- Special types in annotations
- Generics
- Introduction
- User-defined generic types
- Scoping rules for type variables
- Instantiating generic classes and type erasure
- Arbitrary generic types as base classes
- Abstract generic types
- Type variables with an upper bound
- Variance
- ParamSpec
- TypeVarTuple
- Defaults for Type Parameters
Self
- Variance Inference
- Type qualifiers
- Class type assignability
- Type aliases
- Literals
- Protocols
- Terminology
- Defining a protocol
- Protocol members
- Explicitly declaring implementation
- Merging and extending protocols
- Generic protocols
- Recursive protocols
- Self-types in protocols
- Assignability relationships with other types
- Unions and intersections of protocols
type[]
and class objects vs protocolsNewType()
and type aliases- Modules as implementations of protocols
@runtime_checkable
decorator and narrowing types byisinstance()
- Callables
- Constructors
@overload
- Exceptions
- Dataclasses
- Typed dictionaries
- Tuples
- Named Tuples
- Enumerations
- Type narrowing
- Type checker directives
- Distributing type information
- Historical and deprecated features
- Glossary