Preferred method of contact:

Advanced Python: Best Practices and Design Patterns



Course Number



4 Days

PDF Add to WishList

Expand upon your fundamental Python programming skills to build reliable and stable applications. In this training course, you learn to implement Gang of Four (GoF) design patterns in Python in order to solve commonly recurring, real-world software design programs, thereby avoiding pitfalls and greatly improving the effectiveness of your programming efforts. In addition, you’ll boost your Python proficiency with best practices in Object-Oriented Programming, testing, debugging, measuring and improving application performance, and developing RESTful services.

You Will Learn How To

  • Employ design patterns and best practices in Python applications
  • Unit test, debug, and instal Python programs and modules
  • Profile program execution and improve performance
  • Apply advanced Python programming features for efficient, reliable, maintainable programs

Important Course Information


  • Working knowledge of Python programming to the level of:
    • Course 1905, Python Programming Introduction, or at least three months of Python programming experience


  • Concepts taught are applicable to all Linux distributions on Windows, UNIX, Linus, and Mac OS. 
  • Course Outline

    • Object-Oriented Programming in Python
    • Extending classes to define subclasses
    • Inheriting from multiple superclasses and mix-in classes
    • Adding properties to a class
    • Defining abstract base classes
    • Exploring Python Features

    Writing "Pythonic" code

    • Customizing iteration and indexing with "magic" methods
    • Modifying code dynamically with monkey patching

    Handling Exceptions

    • Raising user-defined exceptions
    • Reducing code complexity with context managers and the "with" statement
    • Verifying Code and Unit Testing

    Testing best practices

    • Developing and running Python unit tests
    • Simplifying automated testing with the Nose package

    Verifying code behavior

    • Mocking dependent objects with the Mock package
    • Asserting correct code behavior with MagicMock
    • Detecting Errors and Debugging Techniques

    Identifying errors

    • Logging messages for auditing and debugging
    • Checking your code for potential bugs with Pylint

    Debugging Python code

    • Extracting error information from exceptions
    • Tracing program execution with the PyCharm IDE
    • Implementing Python Design Patterns

    Structural patterns

    • Implementing the Decorator pattern using @decorator
    • Controlling access to an object with the Proxy pattern

    Behavioral patterns

    • Utilizing the Iterator pattern with Python generators
    • Laying out a skeleton algorithm in the Template Method pattern
    • Enabling loose coupling between classes with the Observer pattern
    • Interfacing with REST Web Services and Clients

    Python REST web services

    • Building a REST service
    • Generating JSON responses to support Ajax clients

    Python REST clients

    • Sending REST requests from a Python client
    • Consuming JSON and XML response data
    • Measuring and Improving Application Performance

    Measuring Application Execution

    • Timing execution of functions with the "timeit" module
    • Profiling program execution using "cProfile"
    • Manipulating an execution profile interactively with "pstats"

    Employing Python language features for performance

    • Efficiently applying data structures, including lists, dictionaries and tuples
    • Mapping and filtering data sets using comprehensions
    • Replacing the standard Python interpreter with PyPy
    • Installing and Distributing Modules

    Managing module versions

    • Installing modules from the PyPi repository using "pip"
    • Porting code between Python versions

    Packaging Python modules and applications

    • Establishing isolated Python environments with "virtualenv"
    • Building a distribution package with "setuptools"
    • Uploading your Python modules to a local repository
    • Concurrent Execution

    Lightweight threads

    • Creating and managing multiple threads of control with the Thread class
    • Synchronizing threads using locks

    Heavy-weight processes

    • Launching operating system commands as subprocesses
    • Synchronizing processes with queues
    • Parallelizing execution using process pools and Executors
    Show complete outline
    Show Less

    Convenient Ways to Attend This Instructor-Led Course

    In the Classroom

    Live, Online

    Private Team Training

    In the Classroom — OR — Live, Online

    Tuition — Standard: $3285   Government: $2890

    May 19 - 22 ( 4 Days)
    9:00 AM - 4:30 PM EDT
    Online (AnyWare) Online (AnyWare) Reserve Your Seat

    Jun 23 - 26 ( 4 Days)
    9:00 AM - 4:30 PM EDT
    Ottawa / Online (AnyWare) Ottawa / Online (AnyWare) Reserve Your Seat

    Jul 14 - 17 ( 4 Days)
    9:00 AM - 4:30 PM PDT
    Seattle / Online (AnyWare) Seattle / Online (AnyWare) Reserve Your Seat

    Aug 25 - 28 ( 4 Days)
    9:00 AM - 4:30 PM EDT
    New York / Online (AnyWare) New York / Online (AnyWare) Reserve Your Seat

    Oct 6 - 9 ( 4 Days)
    9:00 AM - 4:30 PM EDT
    Toronto / Online (AnyWare) Toronto / Online (AnyWare) Reserve Your Seat

    Oct 20 - 23 ( 4 Days)
    9:00 AM - 4:30 PM PDT
    San Francisco / Online (AnyWare) San Francisco / Online (AnyWare) Reserve Your Seat

    Nov 17 - 20 ( 4 Days)
    9:00 AM - 4:30 PM EST
    Atlanta / Online (AnyWare) Atlanta / Online (AnyWare) Reserve Your Seat

    Nov 17 - 20 ( 4 Days)
    9:00 AM - 4:30 PM EST
    Boston / Online (AnyWare) Boston / Online (AnyWare) Reserve Your Seat

    Nov 17 - 20 ( 4 Days)
    9:00 AM - 4:30 PM EST
    Philadelphia / Online (AnyWare) Philadelphia / Online (AnyWare) Reserve Your Seat

    Nov 17 - 20 ( 4 Days)
    9:00 AM - 4:30 PM EST
    Herndon, VA / Online (AnyWare) Herndon, VA / Online (AnyWare) Reserve Your Seat

    Dec 15 - 18 ( 4 Days)
    9:00 AM - 4:30 PM EST
    Ottawa / Online (AnyWare) Ottawa / Online (AnyWare) Reserve Your Seat

    Jan 12 - 15 ( 4 Days)
    9:00 AM - 4:30 PM PST
    Seattle / Online (AnyWare) Seattle / Online (AnyWare) Reserve Your Seat

    Feb 16 - 19 ( 4 Days)
    9:00 AM - 4:30 PM EST
    New York / Online (AnyWare) New York / Online (AnyWare) Reserve Your Seat

    Mar 29 - Apr 1 ( 4 Days)
    9:00 AM - 4:30 PM EDT
    Toronto / Online (AnyWare) Toronto / Online (AnyWare) Reserve Your Seat

    Show all dates
    Show fewer dates

    Guaranteed to Run

    When you see the "Guaranteed to Run" icon next to a course event, you can rest assured that your course event — date, time — will run. Guaranteed.

    Private Team Training

    Enrolling at least 3 people in this course? Consider bringing this (or any course that can be custom designed) to your preferred location as a private team training.

    For details, call 1-888-843-8733 or Click here »

    This event has been added to your cart.




    In Classroom or





    Private Team Training

    Contact Us »

    Course Tuition Includes:

    After-Course Instructor Coaching
    When you return to work, you are entitled to schedule a free coaching session with your instructor for help and guidance as you apply your new skills.

    After-Course Computing Sandbox
    You'll be given remote access to a preconfigured virtual machine for you to redo your hands-on exercises, develop/test new code, and experiment with the same software used in your course.

    Free Course Exam
    You can take your Learning Tree course exam on the last day of your course or online any time after class.


    Training Hours

    Standard Course Hours: 9:00 am – 4:30 pm
    *Informal discussion with instructor about your projects or areas of special interest: 4:30 pm – 5:30 pm

    - ,

    Chat Now

    Please Choose a Language

    Canada - English

    Canada - Français