Overview
This course covers the concepts of optional static typing for Python, including Python's type system, gradual typing, the mypy project, type inference, generics, protocols, stub files, and typeshed. The course aims to teach students the benefits of static typing in Python and how to implement it in their code. The intended audience for this course is Python developers looking to improve their code quality and maintainability by incorporating static typing. The teaching method includes theoretical explanations, examples in Python 2, and practical tips on implementing static typing in a large codebase.
Syllabus
Introduction.
Python's popularity.
Python's type system.
Why dynamic typing.
Why static typing.
Gradual typing.
The mypy project.
Other static type checkers for Python.
A static type system for Python.
Example in Python 2.
Type inference.
How to spell types.
Escape hooks (unsafe).
Generics.
Generic class example.
Analyzing runtime type checks.
Protocols (PEP 544) (2).
Stub files and typeshed.
How to start on a large code base.
Standardization effort.
Taught by
Stanford Online