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

Course duration

3 days, 8 class hours each
On-site course quote

In-house training course.

Run at your company premises.

Get a quote
On-line course quote

In-house training course.

Delivered live in a virtual classroom.

Get a quote
Upcoming public courses

No scheduled dates available for this course?

Request a course