The Python Type System. From duck typing to static typing
Learn how to use Python’s type system to protect your code against weaknesses and understand its role in modular systems

The Python Type System. From duck typing to static typing free download
Learn how to use Python’s type system to protect your code against weaknesses and understand its role in modular systems
It is easy to forget about types in Python. After all, you type a equals 10 and it just works. No need to tell python the type of a. But actually, behind the simplicity of the Python language, there is a very sophisticated type system. In fact, Python has a combination of different type systems as you will learn in this course.
You might wonder...why learn types at all? Surely you already know how to work with types in python! It is entirely possible to use types every day without understanding the mechanics behind them. But as with everything else in software engineering, once you learn HOW and WHY it works, you can make more informed choices when designing your systems.
Target audience
Developers who especially benefit from this course, are:
Beginners and intermediates who want to know the mechanics and purpose of types and type systems in Python
Software engineers who want to use the type system as an extra development tool by adding type hints to improve their code quality
Developers who want to learn the proper terminology to make discussing code in your team and searching for information online more efficient
Challenges
Python is an easy language to learn. It hides many of the nuances about data types. But when developers get more experienced, they are more confronted with Python’s unique way to create, instantiate and work with data types. It is at this moment where it helps to take a deep dive into Types and Type Systems.
What can you do after this course?
Fix bugs faster by understanding error messages better
Prevent common type problems by knowing type system techniques
Make classes more efficient by using Python’s unique language features
Create clean modular design by using Protocol classes and type hints
Discuss pro’s and con’s of proposed solutions by learning proper technical terms
Make the transition from another language to Python more efficient
Topics
Introduction to type systems: Type system categories and their basic building blocks: types.
Implicit vs. explicit typing: Literals, variables and attributes.
Dynamic vs. static typing: Duck typing, Python protocols and the Python Datamodel, Compilers and interpreters.
Type Hints: Annotations, static type checkers, kind of types, special typing constructs.
Type flexibility: Safe, sound, complete. Promotion, conversion and comparison.
Nominal vs. structural typing: Using composite classes and protocols to design interfaces for modular systems.
Duration
3 hours video time.
The teacher
This course is taught by Loek van den Ouweland, a senior software engineer with 30 years of professional experience. Loek is the creator of Wunderlist for windows, Microsoft To-do and Mahjong for Windows and loves to teach software engineering.