Advanced Python Programming

מק"ט: #40842 | משך קורס: 24 שעות אק'

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 a number of topics that can be used by all Python programmers to improve the speed and flexibility of their code. We will not only discuss the techniques themselves, but also when and where they might be appropriate.

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


  • 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.


  • Procedural and Functional programming in Python: refreshment:
    • Exception handling.
    • List comprehension.
    • Operator overloading: list and dictionary emulation.
    • User-defined iteration support: generator, iterator.
    • Functions as objects: decorator, dispatching handlers
    • Inner functions and closure
    • Lambda functions: definition and typical uses.
  • Object-oriented programming in Python:
    • Object-oriented programming refreshment – theory and Python support
    • Python Metadata access
    • Implementing Design Patterns in Python exploiting metadata.
  • Event-driven design in Python:
    • Guided introduction to GUI programming in wxPython:
      • Generating a simple data-entry window with wxGlade.
      • Handling input.
    • Concurrent programming in Python:
      • Multithreading in python.
        • Threads.
        • Synchronization objects.
        • Applying multithreading to the GUI.
      • Multiprocessing in Python.
      • Invoking other programs. Textual pipes
    • Developing a web server with Twisted Python – an object-oriented design
      • The Page class
        • Serving files.
        • Serving HTML pages.
        • Separating page data from (the Twisted) page
      • The site file system.
      • Handling the GET request.
        • Basic Python templating:
          • Generating HTML from field objects.
            • The base Field.
            • Frequent Field types.
          • Generating the page.
          • Implementing Unicode page in Python 2 twisted.
          • Handling file upload request.
      • Handling the POST requests.
        • Templating (ctd.):
          • Interpreting field input.
          • Dispatching field input.
        • Handling cancel request.
        • Handling erroneous input.
      • Managing the page stack.
        • Login.
        • Proceeding to child page.
        • Returning to parent page
  • Test-driven design in Python
    • Defining unit tests.