Advanced Programming in Python
Course objectives
After completing this course you will be able to:
- create user data types
- make optimal use of built-in Python types
- use iterators and generators
- use decorators and metaclasses
- create and manage packages
- design unit tests
Course syllabus
Python basics - quick reference
- Syntax
- Data types
- Functions
Classes and objects - advanced topics
- Creating user-defined data types in object-oriented programming approach
- Object definition, attributes binding, properties, slots, static methods and class methods
- Inheritance and multiple inheritance
- "mix-in classes"
- Method Resolution Order
- Creating immutable objects
- Dynamic typing in practice
Extending built-in types
- Built-in types efficiency
- Overloading the built-in types
- The collections module
- Python idioms and code performance
Functional programming
- Iterators, generators and generator expressions
- "Lazy evaluation"
- Nested functions, closures, lambda statements
Metaprogramming
- Class decorators and function decorators
- with expression and context managers
- Introduction to metaclasses
Unit testing
- Unit testing
- Unit test frameworks - unittest, pytest
- doctest
- Running unit test
Prerequisites
Attendance of our Python Training course or equivalent experience with Python