Courses by Category
Click on a category below to see a listing of courses.

This course is available for customized on-site delivery for groups of 3 or more students.
Contact us today at 877-258-8987 for more information or a quote.

Scroll down the page for a list of upcoming course dates in our public calendar.

Advanced Python Programming (5 days)

Our Advanced Python Training teaches experienced Python developers how to leverage advanced features of Python to improve performance, stability, while also covering a broad range of commonly used tools and techniques.

Advanced Python Programming Course Calendar (5 days)

Call for upcoming dates or on-site delivery.

1 Includes airfare from anywhere in the continental United States and some parts of Canada as well as accommodation and shuttle services.
2 Include course and course materials only.
3 Requires a broadband internet connection and microphone. Note that Virtual LIVE courses are led by an instructor, and as such start and end in local time (based on the course location), this my differ from your time zone.
For government and education pricing, please contact us.

Recommended Pre-requisites

Students attending this course should have attended our Python Bootcamp course, or have equivalent experience.

Course Outline/Agenda

This Advanced Python training course covers the following topics:
  • Object Oriented Python
    • About OOP
    • The Class Statements
    • Class Inheritance
    • Classes as Objects
    • Using Dictionaries
    • Understanding self
    • Overriding Inherited Methods
    • More Inheritance
    • Operator Overloading (“magic” functions)
      • The __iter__ Method
      • The __getitem__ Method
    • Empty Classes For Storage
    • Pickling & Shelving Objects
    • Exercises
    • Multiple Inheritance
  • Exceptions
    • About Exceptions
    • Python's Default Exception Handler
    • Using Try/Except/Finally Exceptions
    • Generating User Defined Exceptions
    • More on Exceptions
    • Exception Examples
    • Using Asserts
    • Exception Classes
  • Python Generators
    • About Generators
    • Generator Syntax
    • Communicating with Generators with send()
    • Exercises
  • Python Decorators
    • About Decorators
    • Simple Function Decorators
    • Classes as Decorators
    • Chained Decorators
    • Decorator Arguments
    • Exercises
  • Python Regular Expressions
    • About Regular Expressions
    • re Basics
    • Expression Basics
    • Using match() and search()
    • Working with Match Objects
    • Other re Module Functions
    • Passing in Modifier Flags
    • Exercises
  • Sockets & Networking
    • Socket Basics
    • The Socket Module
      • Network Clients
    • Creating Network Servers
      • Example Server
    • Exercises
  • Python Protocol Clients
    • Protocol Support
    • Exercises
  • Generating & Sending Email
    • The email Module
    • Creating Simple Emails
    • Creating a Message
    • Creating SMTP Connections
    • SMTP Methods
    • Exercises
  • Processes and Threads
    • Running Shell Commands
    • Popen Objects
    • Using Parallel Processing
    • Using Python's os.fork() Function
    • Using os.exec*() Variants
    • Exercises
    • Python Threads
    • The threading Module
    • Thread Objects
    • Custom Thread Objects
    • Working with Locks
    • Using Reentrant Locks
    • Condition Objects
    • Exercises
    • Using the Queue Object
    • Using Semaphores
    • Using with for Locks, RLocks, Condition & Sempahores
    • Event Objects
    • Timer Objects
    • Processing Exit Codes
    • Exercises
    • The multiprocessing Module
    • Using multiprocessing
    • Exchanging Objects
    • Using Pipes
    • Synchronization
    • Using multiprocess Managers
  • Signal Handling
    • The Signal Module
    • Defining Signal Handlers
    • Signal Numbers
    • Common Signal Module Functions
    • Using set_wakeup_fd()
    • Using Timers
    • Other Signal Notes
    • Exercises
  • Introduction to Twisted
    • About Twisted
    • Installing Twisted
    • Twisted Basics
    • The Twisted Reactor
      • Using CallLater
    • Understanding Deferred Objects
    • Creating Deferred Objects
    • Stacking Callbacks
    • Stacking Deferred
    • What about concurrency?
      • Exercises
  • Networking with Twisted
    • Networking Basics
    • Creating a ClientFactory
    • Twisted Failures
    • Protocol Objects
    • Creating Network Clients
    • Creating SSL Clients
    • SSL Context
    • Twisted Helpers
    • Twisted Protocol Support
    • Using Twisted SMTP Protocol Support
    • Twisted.mail.SMTP.sendmail() Explained
    • Mail Exchange Lookups with MXCalculator
    • Using the ESMTPSenderFactory
      • Example
    • More Factories
      • Exercises
  • Providing Services with Twisted
    • Creating Listeners
    • Server Example
      • Exercises
    • Using the Twist Daemonizer (twistd)
    • Creating tac Files
    • Managing Services with twistd
    • Logging with twistd
  • Unit Testing with unittest (PyUnit)
    • About unittest (PyUnit)
    • The TestCase Class
    • TestCase Methods
    • Checking & Reporting Failures
    • Setting up Simple Tests
    • Compiling Test Suites
    • Working with TestResult Objects
    • Using TestLoader Objects
    • Exercises
  • Globbing
    • Using Glob
    • Exercises
  • XML Processing
    • About XML
    • The ElementTree XML API
    • The Element Class
    • Using Elements
    • Creating New Elements
    • Xpath Style Queries
    • Creating & Saving XML Files

Class Size

This class is limited to a maximum of 12 students.

On-Site Delivery

This course is available for on-site delivery for groups of 3 or more students.

OTG offers discounted training for on-site courses of more than 3 students - call us at 877-258-8987 (or submit the form on the upper right side of this page) for more information.

Course Details
After attending this Python training course, students will be able to perform the following tasks:
  • Design, develop, and implement powerful unit testing within their Python applications.
  • Understand and leverage Object Oriented programming techniques in their Python applications.
  • Alter or augment the operation of existing or inherited Python code using decorators
  • Apply powerful regular expression matching and manipulation techniques.
  • Utilize sockets & networking, including Python provided protocol clients
  • Generate and send complex email with multiple MIME parts and attachments
  • Leverage and understand Pythons threading and multiprocessing module, including locks, conditions, re-entrant locks, and a host of other related topics.
  • Develop Python applications that react to signals.
  • Understand, develop, and deploy cooperative multitasking, event-driven services with Twisted
  • Parse, process, manipulate, generate, and query XML documents

Instructional Materials
The following materials are used to deliver this course:
  • Programming Python (O'Reilly & Associates)
  • OTG Course Guide
Adobe PDF Logo View course guide table of contents
Requires Adobe Acrobat Reader

Enroll in this course

View upcoming course calendar