58 lines
1.7 KiB
Markdown
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).
|