Choose your language:

France
Germany
Hong Kong
India
Ireland
Japan
Malaysia
Netherlands
New Zealand
Singapore
Sweden
United Kingdom
United States

Advanced Python

Course Code

IN1516

Duration

3 Days

An Intensive Introduction to Python course or equivalent knowledge is required. Participants should:

  • Be comfortable writing Python scripts complete with unittests and doctests
  • Know the core datatypes list/set/dict/str/float/int/bool/None
  • Know common built in functions
  • Know how make create classes and use common special methods
  • Have an understanding of the proper use of dictionaries
  • Know how and when to use list comprehensions
  • Know how to use Python's regular expression module
  • Know the core looping idioms including range, enumerate, reversed, sorted, and zip
This is an intensive course in the Python Programming Language with an emphasis on building applications and achieving a deeper understanding of the language. This is an interactive workshop style class where students learn by writing code through hands-on exercises. Students can expect to improve basic skills as well as add to those skills by incorporating topics such as databases, RESTful and Web-based tools, threading, unit testing, functional programming, decorators, iterating techniques, advanced-level class design, and numerous modules from the standard library.
This course is designed for engineers, application developers, QA testers, system administrators, and anyone looking to further their endeavors with Python.

Upon completion of this course, participants will be able to:

  • Reinforce Python basics with a focus on mastery and improving understanding and control of the language
  • Deepen knowledge of the Python object model
  • Reinforce how to install Python third-party modules and examine popular packages
  • Learn more of Python's standard library including the collections, profiling, trace module, and debugger
Day 1
Controlling The Python Environment

Creating a virtual environment
Virtualenv wrapper
Advanced importing & packages
Leveraging __init__.py
Exercise: Review Basics

Mastering the Standard Library
Advanced string formatting
Using StringIO and the io module
Annotations
Comparing techniques with container classes
Measuring performance using timeit
Chaining for dictionaries
Advanced context managers: contextlib
Hashing and the hashlib module
Documentation using pydoc
Arguments using argparse
Other utility modules: fnmatch, shutil, filecmp, pprint
Exercise: Command-line arguments

Advanced Functions and Iterating
Collections module
Iterator protocol
itertools
Exercise: Using Collections
Closures and decorators
Functional programming concepts
Exercise: Creating and using decorators
Generators
Dictionary and set comprehensions
Generator expressions
Exercise: Generators

Day 2
Python & Design Patterns

Singleton
Constructor overloading
Subclassing
Dependency inversion
Open/closed principle
Liskov principle
Monkey patching
unittest module
unittest.mock
pylint and pyflakes
Exercise: Using the mock module

Databases and Persistence
Python database API 2.0
SQLite and RDBMS
Connecting to the database
Fetch and Execute operations
Parameterized statements
Object relational mapping
ORM in Python: SQLAlchemy
Exercise: Incorporating the Database

Advanced Classes
Classes review
Magic methods
New style vs old style lasses
Properties
Descriptors
Static and class methods
Super
Multiple inheritance
Abstract base classes
Exercise: Class Design

Day 3
Multi-processing and the AsyncIO APIs

Using subprocess
Exercise: Using subprocesses
Creating and working with threads
Locks
Multi-processing
The reactor pattern
AsyncIO APIs
Twisted
Asyncio API
Gevent
Exercise: Using subprocesses

Software Distribution and More
Port Scanning Utilities
Python ssh clients
Packaging code for distribution
Creating Python distributions with setup.py

Web Servers and RESTful Services
WSGI
RESTful architectures
Python RESTful frameworks
Flask
Other web frameworks
Exercise: Working with Flask
Send Us a Message
Choose one