mdk.fr/content/pages/python-avancé.en.md

58 lines
1.7 KiB
Markdown

Lang: en
Slug: python-avance
Title: Advanced Python
That's the last of my two Python trainings. While the [introduction
training]({filename}/pages/python-initiation.md) 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]({filename}/pages/python-initiation.md) 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`'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`.
## 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](mailto:julien@palard.fr).