2 Day – Advanced Python Programming

A 2-day course that examines more advanced language features that may be used in developing Python applications. This course is aimed at experienced programmers who expect to be using Python to develop reusable code modules or gain a better understanding of the Python language.

Prerequisites

This course is designed for programmers who have practical programming experience using Python with and understanding of tuples, lists, dictionaries, list comprehension, classes, exception handling, file I/O and module structure.

Learning Objectives

The course will help experienced developers make effective use of the Python language and libraries:

  • Testing code using Pylint and Unittest (PyUnit)
  • Variable arguments and flattening
  • Working with function pointers and lambdas
  • Using generator and decorator functions
  • Timing and performance improvement
  • Working with the Python OO model
  • Implementing special methods
  • Understanding the data type model and introspection
  • Multithreading and multiprocessing

Delivery

This course comprises a mix of theory, demonstrations and hands on exercises. Approximately 50% of the time is hands-on. This course can be delivered using python 2.7 or Python 3.

Day 1 – Developing Applications

  • Static testing with PyLint
  • Varargs and flattening
  • Function pointers
  • Lambdas
  • Generator functions
  • Decorators
  • Timing code execution
  • Improving performance
  • Unit testing with unittest (PyUnit)

Day 2 – OO and Concurrency

  • Object data type model
  • Introspection
  • OO inheritance
  • Overriding methods
  • Superclass methods
  • Class level attributes
  • Special methods
  • Creating iterable objects
  • Creating context managed objects
  • Multithreading
  •  Multiprocessing