Python Advanced


Category: Tag:
Product Description

Python Advanced Training Course

This course is not for novices in coding, we assume you know the non OO fundamentals of any coding language. A critical course in Python

Prerequisites and Further Training

You should definitely be very well familiar with our Python Beginner Topics.

Intended Audience

Whether you are new to programming or a professional developer, this course is designed to bring you up to speed on the Python language in ways that more limited approaches cannot.

Further Training

Also have a look at our Python Data Science Bootcamp .

Course Material

Supplied in electronic format unless specified otherwise

Course Content


Text Processing and Function Topics

  • Text Manipulation
  • First Class Functions
  • Design Patterns with First Class Functions
  • Decorators and Closures


OO Review and sequence operations

  • Object References, mutability and recycling
  • Pythonic Objects
  • Sequence operations (hacking, hashing, slicing)


Coroutines and concurrency

  • Coroutines
  • Concurrency
  • Asyncio
  • Tornado
  • Trolius



  • Dynamic attributes and properties
  • Data wrangling with dynamic attributes
  • Exploring JSON-like data with dynamic attributes
  • The invalid attribute name problem
  • Flexible object creation with __new__
  • Restructuring the OSCON feed with shelve
  • Linked record retrieval with properties
  • Using a property for attribute validation
  • LineItem take #1: class for an item in an
  • LineItem take #2: a validating property
  • A proper look at properties
  • Properties override instance attributes
  • Property documentation
  • Coding a property factory
  • Handling attribute deletion
  • Essential attributes and functions for attribute handling
  • Special attributes that affect attribute handling
  • Built-in functions for attribute handling
  • Special methods for attribute handling

Attribute descriptors

  • Descriptor example: attribute validation
  • LineItem take #3: a simple descriptor
  • LineItem take #4: automatic storage attribute names
  • LineItem take #5: a new descriptor type
  • Overriding versus non-overriding descriptors
  • Overriding descriptor
  • Overriding descriptor without __get__
  • Non-overriding descriptor
  • Overwriting a descriptor in the class
  • Methods are descriptors
  • Descriptor usage tips
  • 1. Use property to keep it simple
  • 2. Read-only descriptors require __set__
  • 3. Validation descriptors can work with __set__ only
  • 4. Caching can be done efficiently with __get__ only
  • 5. Non-special methods can be shadowed by instance attributes
  • Descriptor docstring and overriding deletion

Class metaprogramming

  • A class factory
  • A class decorator for customizing descriptors
  • What happens when: import time versus run time
  • The evaluation time exercises
  • Metaclasses
  • The metaclass evaluation time exercise
  • A metaclass for customizing descriptors
  • The metaclass __prepare__ special method
  • Classes as objects


  • Data Science Libraries Overview
  • Practicals and Test

Duration and pricing

  • Full-time over 10 days (R19 995)
  • Part-time over 4 weeks (2 nights per week, 3 hour sessions) (R11995)
  • Part-time over 8 Saturdays, 3 hour sessions (R11995)
  • Please note : For part-time courses we do not have a fixed schedule and you will be placed on a waiting list until we get a group of 4+ together. Please book with no dates on the bookings form. This will automatically put you on the waiting list. We will confirm with you as soon as we have a part-time group together.
  • Distance-learning over up to 3 months (R9995)
  • International exams are not included in the course price.
  • Prices exclude Vat


  1. Upon completion of this course we will issue you with attendance certificate to certify your attendance and / or completion of the prescribed minimum examples.
  2. You may sit for our competency assessment test and on passing you will obtain our competency certificate.
  3. Our competency assessment can be booked and taken by someone who has not attended the course at a cost of R950.


You can download the course registration form on our home page or by clicking here


You may download a pdf copy of this page by clicking on the pdf icon at the top of the page.


Please email us


On the calendar below. If your browser doesn’t display the calendar below, please click on this link or try using Google Chrome, alternatively please enquire via our Contact Us page.

We are a member of the Python Software Foundation


Print Friendly, PDF & Email
Additional Information

Distance-Learning, Full-time, Part-Time