Skip to main content

Advanced Python


Advanced Python


Azure Fundametals
Data Modelling with M and Power Query
DAX Programming
ITIL Foundation
Linux Essentials
Linux Networking
Linux Point and Click Admin
Linux Shell Commands
Linux System Administration 1
Linux System Administration 2
Microsoft Azure Administrator
Microsoft Power BI Boot Camp
Microsoft Power BI Desktop Advanced Course
Microsoft Power Query
Microsoft PowerApps
Microsoft PowerBI Dashboard User Course
MySQL Administration
Network Security Penetration Testing
PostgreSQL Administration
Python for Data Science
Python for Engineers and Scientists
TCP/IP Networking


Mark Badham


Python is now one of the most used Programming languages. Python general purpose, is easy to use and very high level.

In this course, you will learn how to use some of the more advanced features of Python including Adv Iteration, Decorators, Meta classes and Multi Processing, etc.


Delivery Methods

Leading Training is focusing on providing virtual training courses for the foreseeable future and will only consider in-person and classroom training on request, with a required minimum group size of six delegates. We remain committed to offering training that is fast, focused and effective.

Delivery Method Duration Price (excl. VAT)
Classroom 2 Days ZAR 5,500.00 Get a Quote
Live Virtual Training 2 Days ZAR 4,500.00 Get a Quote

Discounts Available

Save up to 10% by booking and paying 10 business days before the course.


Download Brochure

Information may change without notice.


Programmers with knowledge and experience in using python.

If you have no experience in using Python, we recommend that you first complete the Python Programming Course



Python Programming Course or equivalent experience.


Course Outline / Curriculum

 Functional Programming

  •  Functions
  •  optional Arguments
  •  lambda
  •  Simple lambda functions
  •  Map
  •  Filter
  •  List Comprehension
  •  Generator expression
  •  Generator Functions

 Iteration Patterns in Python

  •  Itertools
  •  Abstracting iteration
  •  Iterable Pattern
  •  Low Level Iteration

Object Orientation

  • Modules
  • import
  • import invocation
  • class
  • class variable
  • methods
  • instance vars
  • constructor
  • inheritance
  • exceptions
  • raising exceptions
  • traceback
  • object special attributes
  • descriptors


  •  Closure
  •  Applying closure
  •  Decorator Equivalent
  •  Decorators with args
  •  Example in Documentation


  •  Class Decorator
  •  Class Decorator
  •  Apply Class Decorator
  •  Classes are instances of type
  •  Create Class with type
  •  Default MetaClass is type
  •  Example MetaClass
  •  __new__
  •  Using __new__() to alter class properties


  •  With and Context Managers
  •  Opening Files
  •  With equivalent
  •  How it works
  •  file context
  •  My Context Manager
  •  Output
  •  Context Decorator

Regular Expressions

re module

Profiling and Performance

  • Calling cProfile
  • The Muppy Module
  • The Muppy Module
  • You can create summaries
  • Compare them with other summaries
  • The tracker module
  • Reference Browser
  • ConsoleBrowser
  • Performance Tips
  • Choose the Right Data Structure
  • Sorting
  • String Concatenation
  • Loops
  • Avoiding dots


  • GIL
  • Thread and Threading
  • Using threading.Thread
  • Thread constructor args
  • Two Approaches to Thread
  • Trivial Example
  • Local Storage
  • Safe Multi Threading
  • Locking
  • Problems with Simple Locking
  • Re-Entrant Locks (RLock
  • Semaphores
  • Events
  • Conditions
  • Queue Module

Parallell Processing

  • The Process class
  • Forking other processes
  • os.system
  • os.popen
  • subprocess
  • subprocess.Popen class
  • Popen arguments
  • Popen examples
  • subprocess functions

Async Programming

  • Concurrent Futures
  • Coroutines
  • Asycio/Trollius
  • Future and Callbacks
  • Async IO 
  • Asynchronous routines

Schedule Dates and Booking

There are currently no scheduled dates.

Please note that this course needs a minimum of 6 delegates to schedule a course. You can choose to be added to the waiting list by clicking the button below, and we will contact you when we have enough delegates interested. Should we not get enough delegates, we will refund or credit your paid booking.

Add me to the waiting list

Should you need this course urgently, the following options are available:

  1. Pay for 6 delegates (whether you have them or not) and we will schedule the course as soon as possible.
  2. If you have fewer delegates and cannot pay for 6, we can negotiate a shortened course where some of the time will be spent in blended learning - watching videos and doing tutorials and exercises with some contact time with the trainer. We would want to discuss what your core needs are so that we cover those aspects. You need to have paid for 3 delegates at least.
Submit Enquiry