Advanced Python

Python is a widely used high-level programming language for general-purpose programming.

Python is an open source language that is easy to learn and apply. Python has a unique combination of being both a capable general-purpose programming language as well as being easy to use for analytical and quantitative computing.

Python Advanced Course Outline-30 hrs

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

Comments are closed.