Advanced Python
That's the last of my two Python trainings. While the introduction training covers using classes and libraries to create simple programs, this training focuses on the art of creating classes and libraries to build reusable chunks in arbitrary complex software.
Goals
At the end of this training, one is able to produce readable, maintainable, and tested code on any kind of project.
Focus is set on sharing and reusing code:
- Creating libraries (modules, packages).
- Packaging and distributing libraries.
- Managing dependencies in libraries and in projects.
- Tests and documentation.
Prerequisites
The pre-requisite to follow this training is either to have followed the Python Introduction one, or have an equivalent level, that is: be able to read and modify Python code, be able to write Python code to solve a given problem from scratch.
Content
- Python protocols (iteration protocol, any "dunder", …).
- Classes and their instances (where we speak about the MRO and
super()
). - The descriptor protocol.
- The garbage collector.
- IEEE 754 floats, knowing their limits.
- Create, raise, and handle exception.
try
'selse
andfinally
. - Context managers.
- Decorators.
- List comprehensions.
- The Walrus Operator (
:=
). - String encodings.
- Packaging using
pyproject.toml
,python -m build
,twine
, … - Asynchronous Python with
async
andawait
.
Duration
This training best spam over five days, but I'm acustomed to give a 3 day version of it too.
Contact
To know more, please shoot me an email at julien@palard.fr.