en fr

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.


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.


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.


  • 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's else and finally.
  • Context managers.
  • Decorators.
  • List comprehensions.
  • The Walrus Operator (:=).
  • String encodings.
  • Packaging using pyproject.toml, python -m build, twine, …
  • Asynchronous Python with async and await.


This training best spam over five days, but I'm acustomed to give a 3 day version of it too.


To know more, please shoot me an email at julien@palard.fr.