Course Outline


Duration

2 days

Lab Setup

Make sure you have Python 3 installed. All content is covered with Python 3

Course Outline for Advanced Python Training

Programming Paradigms
  • Procedural Programming
  • Functional Programming
  • Object Oriented Programming
  • Aspect Oriented Programming
Object Oriented Programming Basics
  • Introduction to OOP
  • Classes and Objects
  • Instance methods and data
  • Initialization of objects
  • Inheritance
  • Multiple and Multilevel Inheritance
  • Method overriding
  • Classes and Types
  • Visibility
  • Examples
More OO
  • New style classes
  • Diamond Inheritance
  • Method Resolution Order
  • Class methods
  • Static methods
  • Duck typing
Functional Programming in Python
  • Functions as objects
  • Creating and returning functions
  • Nested functions
  • Dynamic functions
  • Anonymous(lambda) functions
  • Closures
  • Passing variable number of arguments
  • Generators and yield
  • List Comprehensions
  • Dictionary and Set Comprehensions
  • Collection interconversion patterns
Socket Programming
  • Introduction to networking concepts
  • Creating a socket
  • Using a socket
  • Disconnecting
  • Non-blocking sockets
Working with Databases
  • Types of databases
  • Why SQLite?
  • Connection objects
  • Cursor objects
  • Row objects
  • ORM with SQLite – storing and retrieving Python objects from SQLite
Decorators
  • Aspect Oriented Programming in Python
  • Using decorators
  • Defining decorators
  • Decorator chaining
  • Decorators - best practices
Built-in Functions
  • Math related functions
  • Collections related functions
  • Object related functions
  • Functional programming related functions
Concurrent Programming
  • The need
  • Parallel programming paradigm
  • Lock and RLock objects
  • threading module
  • Thread objects
  • Global Interpreter Lock
  • multiprocessing module
  • Queue objects
Testing
  • Introduction to Unit testing
  • Fixture
  • Test case
  • Test suite
  • Test runner
  • Unit testing in Python – the basic flow
  • Organizing the test code
  • Skipping tests and expected failures
  • unittest, unittest2, nose
  • Generating coverage reports
Logging
  • Logger objects
  • Handler objects
  • Formatter objects
  • Filter objects
  • LogRecord objects
  • Debugging
  • Debugging
  • Using the pdb module
  • The debugger commands
Porting to Python 3
  • print is a function
  • Views and Iterators instead of Lists
  • Ordering comparisons
  • Integers
  • Text v/s Data instead of Unicode v/s 8-bit
  • Syntax changes
  • Porting to Python 3
  • 2to3 program
Misc
  • Iterators, Iterables, Itertools
  • Reflection and Introspection
  • Operator Overloading
  • Garbage collection
  • gc module
  • pylint
WSGI
  • Installation of Apache2, libwsgi
  • Configuration of Apache to work with WSGI
  • Working of a simple Python app via WSGI

The classroom training will be provided in Bangalore (Bengaluru), Chennai, Hyderabad or Mumbai and will be conducted in the client's premises. All the necessary hardware/software infrastructure must be provided by the client.