Description

This workshop is intended for developers with Python experience. Participants learns how to use more advanced Python features like iterators, generators or metaclasses. They are exposed to collections, unittest and other very useful modules from Python Standard Library.

Course Syllabus

Tooling

  1. Python Installation
  2. IDE
  3. pip
  4. Ipython
  5. Jupyter Notebook
  6. virtualenv
  7. Data Science Libraries (optional)

Advanced Functions

  1. Positional and Keyword Arguments, *args, **kwargs
  2. Default Value Trap

Object Oriented Programming

  1. Class and Instance Attributes
  2. Special Methods
  3. @classmethod
  4. @staticmethod
  5. @property
  6. Descriptors
  7. Single Inheritance
  8. Inheriting from Immutable Datatypes
  9. Multiple Inheritance, Method Resolution Order, Mixins
  10. Metaclasses

Testing

  1. Basics
  2. Running Tests
  3. SetUp & TearDown
  4. Assertions
  5. Skipping Tests
  6. Subtests (Python 3)
  7. Doctests (optional)
  8. Pytest (optional)

Parallel Programming

  1. threading Module
  2. Producers and Consuments
  3. concurrent Module
  4. Debugging Multithreaded Programs

Decorators

  1. Closures
  2. Simple Decorators
  3. Parametrised Decorators
  4. Class-based Implementations
  5. Decorating Methods and Classes

Context Managers

  1. Use Case
  2. Protocol
  3. Writing Your Own Managers

Collections Module

  1. namedtuple
  2. queue
  3. defaultdict
  4. Counter

Profiling and Optimisation

  1. Profiling
  2. Optimisation
  3. Memory Profiling
  4. Builtin Data Structure Operations – Time and Memory Complexity
Close Menu