Advanced Python Programming

מק"ט: #40842 | משך קורס: 40 שעות אק'
| מספר מפגשים: 5

Python is a high-level interpreted language that comes with a rich set of data types, support for object-oriented and functional programming, and a versatile library. Combined with a large and active worldwide community of users, it is no surprise that Python is one of the most popular languages in use today, from commercial software companies to the pharmaceutical industry, to research in such diverse fields as biology, sociology, and linguistics. Python is also popular among Web developers, for its strong support for text handling, networks, and databases, and frameworks such as Twisted and Django.
This course is aimed at programmers with a basic to intermediate knowledge of Python. It covers control and data structures beyond what is acquired in the basic Python course, concentrating on their unique Python implementation and application, with stress on object-oriented and concurrent programming. Third-party libraries and frameworks are chosen for simplicity and demonstration of the programmatic techniques acquired. This is not a course for learning Python applications.

הקורס פעיל לקבוצות מטעם ארגונים בלבד, ניתן לשלוח פנייה רק אם מדובר בקבוצה
*שדות חובה
PDF version


  • Implement object-oriented designs, to any degree of complexity, in Python.
  • Implement user-defined types, such as container-like classes.
  • Implement Simple GUI applications in wxPython.
  • Implement Concurrent designs in Python.
  • Implement fully-functional web servers in Twisted Python.
  • Apply Test-driven design with Python unit-testing. 

קהל יעד

Programmers with some Python experience, who want to take their skills to the next level.

תנאי קדם

Previous object-oriented programming experience in Python.


Python refreshment

  • Types
  • Flow of control
  • Functions
  • Strings
  • Collections


Data abstraction and Advanced collection

  • Magic methods: Indexed and keyed access.
  • Magic methods: Sequential access – Iterator / generator protocol.
  • List emulation
  • Dictionar
  • Bound and unbound methods.
  • Using metadata.

Functional programming in Python.

  • Inner functions and closure.
  • Functions as objects.
  • Higher-order functions: decorator.
  • Lambda functions: definition and typical uses.

Object-oriented programming in Python

  • The need for substitutability. The Python approach: “duck typing”
  • Commonality and variance. Inheritance. Abstract base class. Constructor override
  • The message paradigm. Left-handed polymorphism. The principle of substitutability
  • Double polymorphism: multi-methods, double dispatch
  • Polymorphic Design Patterns in Python using metadata: Composite
  • Design patterns made trivial in Python: Singleton, Dynamic Pluggable Factory, Factory Method, Prototype, Proxy


Error and Exception handling

  • Writing to stderr
  • Controlling warnings
  • Exception handling
  • Multiple exceptions
  • The Python exception hierarchy
  • The raise statement
  • Raising our own Exceptions
  • Assert


Packaging and Interop

  • Modules
  • Packaging
  • Distributing packages (Egg and wheel)
  • Package managers
  • Documenting code - pyDoc
  • Working with C and Python

Unit Testing

  • Test-driven design in Python



  • Creating a process from Python
  • Waiting for a child
  • Using the subprocess module
  • The subprocess.Popen class
  • Passing data through a pipe
  • Processes and threads
  • Threads in Python
  • Synchronisation objects in threading
  • Simple use of Lock
  • The trouble with threads
  • Using the multiprocessing module
  • Queue objects

Python standard library

  • The Standard Library
  • Pretty Printer
  • Operating System interfaces - os and friends
  • System specific attributes - sys
  • Signal handling - signal
  • Converting a signal to an exception
  • Configuration files
  • The ConfigParser module
  • The datetime module and friends
  • The platform module
  • External function interface - ctypes
  • The socket module
  • __future__
  • collections module

Advanced Regular Expressions

  • Regular expressions in python
  • Multiline matching
  • Named captures

Advanced Data handling

  • Files
  • Json and XML
  • Database access - mysql

From python

  • Web development with Djungo

Useful Packages – the road ahead

  • Web development with Djungo
  • GUI development
  • Numpy
  • Matplotlib
  • Seaborn
  • Pandas – data analysis
  • Machine learning - Scikit learn