Python Programming

ABOUT PYTHON:

Python is a high-level, interpreted and general-purpose dynamic programming language that focuses on code readability. The language founded in the year 1991 by the developer Guido Van Rossum has the programming easy and fun to do.

COURSE DESCRIPTION:

The Advanced Python is widely used in bigger organizations because of its multiple programming paradigms. They usually involve imperative and object-oriented functional programming. It has a comprehensive and large standard library that has automatic memory management and dynamic features.

WHO SHOULD ATTEND:

  • Any programmers seeking advanced knowledge on the Python programming language
  • Python programmers looking to advance in the field

HIGHLIGHTS OF THE COURSE:

  • Highly qualified and experience trainers
  • Sophisticated classrooms & modern facilities
  • Intensive applications

WHAT YOU WILL LEARN:

  • Learn many advanced Python methods and variables
  • Learn how to create your own methods and functions
  • Learn how to scan, process and store data
  • Take a huge step towards OOP

CLASSES AND OBJECTS

  • An introduction to creating and using user-defined objects in Python.
  • Describes how to use the class statement to create new objects and presents details on various special methods that can be defined to customize object behavior.
  • Commonly used object oriented programming techniques are also presented

ADVANCED I/O HANDLING

  • An in-depth examination of the Python I/O system including text handling, binary data handling, and different I/O models such as blocking, non-blocking, and event-driven I/O.

IDIOMATIC DATA HANDLING

  • An introduction to various tools & techniques for effective data processing.
  • Discusses different options for creating data structures and gives an inside look at how the built-in data types are put together along with their performance and memory usage properties.
  • Students will learn how to apply list, set, and dictionary comprehensions to various problems in data handling.

INSIDE THE PYTHON OBJECT MODEL

  • A detailed tour of how the Python object system is implemented.
  • Topics include the definition of objects, object representation, attribute binding, inheritance, descriptors, properties, slots, private attributes, static methods, & class methods.
  • Cover important details concerning Python memory management and garbage collection.

TESTING, DEBUGGING & LOGGING

  • Coverage of how to test and debug Python programs with a focus on three major topics.
  • First, testing Python programs with the doctest and unittest modules is described.
  • Next, the Python Debugger and profiler are presented.
  • Finally, the logging package is described.

PACKAGES AND DISTRIBUTION

  • How to organize Python code into packages & how to distribute packages to users and programmers.
  • Covers the underlying mechanics of how packages are put together and the distutils module for creating distributions.
  • Also covers more advanced packaging options such as Distribute and setup tools.

ITERATORS, GENERATORS, COROUTINES

  • The section starts with a description of the iteration protocol and moves on to practical use of generators and coroutines.
  • A major focus on this section is on the use of generators and coroutines to set up processing pipelines, much like pipes in Unix programming.
  • You will see how generators and coroutines can lead to very elegant programming abstractions for processing data and how such programs can be used to process huge data files and streaming I/O.

FUNCTIONAL PROGRAMMING

  • Advanced details of how to program with functions in Python.
  • Discusses more advanced features of functions including variadic parameters, nested functions, closures, lazy evaluation, anonymous functions (lambda), and function attributes.

METAPROGRAMMING

  • Loosely defined, metaprogramming refers to programs that are able to manipulate their own program structure (functions, classes, etc.) or the structure of other programs as data.
  • This section introduces and covers practical examples of Python’s metaprogramming features including function decorators, class decorators, met classes, and context managers.
  • A major emphasis of this section is to understand how advanced programming frameworks utilize these features to provide a richer programming environment for their end users.

EXTENSION PROGRAMMING

  • How to create C and C++ extensions to Python. Covers the absolute basics of the Python C API followed by some details on using the c types library and Swig code generator.
  • A major focus of this section is on how to organize extension code so that it can more seamlessly integrate with the Python environment.
  • Topics include memory management, data handling, encapsulation, and common pitfalls.

CONCURRENT PROGRAMMING WITH THREADS

  • An introduction to programming with Python threads.
  • Starts with the basics of using the threading library and dives into a variety of more advanced topics including a survey of how and when to use the different thread synchronization primitives, queues, deadlock avoidance, and thread debugging.
  • Also includes detailed information on how the Python interpreter executes programs and properties of the global interpreter lock (GIL).

MULTIPROCESSING

  • An introduction to the multiprocessing library that allows programs to distribute their work across independent processes or machines.
  • Covers processes, queues, pipes, connections and process pools.