Description
The Python language has established itself today as a technological base for the development of large software projects. In this training, you will implement advanced techniques of the Python language as well as its main libraries in order to be able to meet the quality requirements of these projects.
Who is this training for ?
For whom ?
Engineers and developers.
Prerequisites
Good knowledge of Python development, or knowledge equivalent to that provided by THO or PYT courses. Experience required.
Training objectives
Training program
- Important reminders about language
- - Assignment by reference and modifiable, non-modifiable (mutable) data types.
- - Passing arguments, default values and local variables.
- - Class variables and instances.
- - Slices and advanced data structures.
- - Introspection.
- - Advanced elements of control structures: the else clause of instructions for, while, try/except.
- - Practical work
- Advanced functions
- - Advanced use of decorators (from generation to consumption, consumer pipeline).
- - Decorators and Design Patterns.
- - Closure/closure.
- - Practical work.
- Advanced Object Oriented Programming
- - Properties.
- - Iterators.
- - Multiple inheritance and its pitfalls.
- - Context Managers.
- - Abstract classes and methods (ABC).
- - Metaclasses.
- - Practical work.
- Deployment and quality
- - Install third-party libraries (pip, easy_install).
- - The Python Package Index (PyPI).
- - Package your libraries (distutils, setuptools).
- - Deploy an autonomous environment (virtualenv and buildout).
- - Practical work.
- Parallelism: optimize the performance of your programs
- - Profile your programs with Timeit and cProfile.
- - Parallelization: avoid multithreading and go for multiprocessing.
- - Distributed computing with the Celery library.
- - Practical work.
- Libraries contributing to the success of the language
- - Scientific computing and statistics with Numpy, Scipy, Matplotlib and Pandas.
- - Artificial intelligence and learning algorithms with Scikit-learn.
- - Searching information in XML files with ElementTree.
- - Network: tcp relay with Twisted and SNMP supervision with PySNMP.
- - Practical work.