Duration
4 days (10:00 AM - 5:00 PM Eastern)
Cost
$1,325.00

Online Training

Do you want to take an online, instructor-led class?

Onsite Training

Do you have five (5) or more people needing this class and want us to deliver it at your location?

Details

Subjects Covered

Prerequisites

Setup Requirements

Details

Course Details

This course picks up where Python 3 Introduction leaves off, covering some topics in more detail, and adding many new ones, with a focus on enterprise development. The focus is on OS services, pythonic programming, modules, classes, metaprogramming, developer tools, database access, PyQt4, network programming, multiprogramming, system administration and scripting, XML and JSON, and extending Python with C.
 
This is a hands-on programming class. All concepts are reinforced by informal practice during the lecture followed by lab exercises. Many labs build on earlier labs, which helps students retain the earlier material.
 

Subjects Covered

Python 3 Intermediate

  • Python Refresher
    • Variables
    • Basic Python Data Types
    • Sequences
    • Mapping Types
    • Program Structure
    • Files and Console I/O
    • Conditionals
    • Loops
    • Built-ins
  • Pythonic Programming
    • Pythonic Programming
    • The Zen of Python
    • Common Python idioms
    • Unpacking Functions Arguments
    • Lambda Functions
    • List Comprehensions
    • Iterables
    • Generator Expressions
    • Writing Generators
    • String Tricks
    • String Formatting
  • Modules
    • Modules
    • Using import
    • Module Search Path
    • Namespaces
    • Executing Modules as Scripts
    • Packages
    • Configuring import with __init__.py
    • Name resolution (AKA Scope)
    • Python Style
  • Classes
    • Defining Classes
    • Instance Objects
    • Instance Attributes
    • Instance Methods
    • __init__
    • Properties
    • Class Data
    • Class Methods
    • Inheritance
    • Multiple Inheritance
    • Using super()
    • Special Methods
    • Class-private Variables
    • Static Methods
  • Metaprogramming
    • Metaprogramming
    • globals() and locals()
    • Working with Attributes
    • The inspect module
    • Decorator Functions
    • Decorator Classes
    • Decorator Parameters
    • Creating Classes at Runtime
    • Monkey Patching
  • Developer Tools
    • Program Development
    • Comments
    • pylint
    • Customizing pylint
    • Using pyreverse
    • The unittest module
    • Fixtures
    • Skipping Tests
    • Making a Suite of Tests
    • Automated Test Discovery
    • The Python debugger
    • Starting Debug Mode
    • Stepping Through a Program
    • Setting Breakpoints
    • Profiling
    • Benchmarking
  • Database Access
    • The DB API
    • Available Interfaces
    • Connecting to a Server
    • connect() Examples
    • Creating a Cursor
    • Executing a Statement
    • Fetching Data
    • Parameterized Statements
    • Dictionary Cursors
    • Metadata
    • Transactions
    • Object-relational mappers
  • PyQt4
    • What is PyQt4?
    • Event-Driven Applications
    • GUI Application Flow Chart
    • External Anatomy of a PyQt4 Application
    • Internal Anatomy of a PyQt4 Application
    • Using designer
    • Anatomy of a designer-based application
    • Naming Conventions
    • Common Widgets
    • Layouts
    • Selectable Buttons
    • Actions and Events
    • Menu Bar
    • Status Bar
    • Using Predefined Dialogs
    • Creating Custom Dialogs
    • Tabs
    • Niceties
    • Working with images
    • Complete Example
  • Network Programming
    • Sockets
    • Socket Options
    • Client Concepts
    • Server Concepts
    • Application Protocols
    • Forking Servers
    • Grabbing HTML from the Web
    • Consuming Web Services
    • Web Data the Easier Way
    • Sending Email
    • Binary Data
    • The struct module
  • Multiprogramming
    • Multiprogramming
    • What are Threads?
    • The python thread manager
    • The threading module
    • Threads for the impatient
    • Creating a thread class
    • Variables sharing
    • Using Queues
    • Debugging Threaded Programs
    • The Multiprocessing module
    • Alternatives to multiprogramming
  • System Administration and Scripting
    • The Subprocess Module
    • Subprocess Convenience Functions
    • Using the sh Module
    • Remote Access
    • Permissions
    • Saving Information
    • Creating a Useful Command Line Script
    • Creating Filters
    • Parsing the Command Line
    • Simple Logging
    • Logging Levels
    • Formatting Log Entries
    • Logging to Other Destinations
  • XML and JSON
    • About XML
    • Normal Approaches to XML
    • Which Module to Use?
    • Getting Started with ElementTree
    • How ElementTree Works
    • Creating a New XML Document
    • Parsing an XML Document
    • Navigating the XML Document
    • Using XPath
    • Advanced XPath
    • About JSON
    • Reading JSON
    • Writing JSON
  • Extending Python with C
    • Why Extend Python?
    • Ways to Extend Python with C
    • Hand-coded C
    • Overview
    • The C Program
    • Methods
    • The Method Table
    • The init Function
    • Handling Errors
    • Custom Exception Objects
    • Putting It All Together
    • Using SWIG
    • The Interface File
    • Generating the Wrappers
    • Building and Installing the Extension
    • ctypes

Prerequisites

Before Taking this Class

Python 3 Introduction or the ability to write simple Python scripts, using basic data types, program structures, and the standard Python library.

Setup Requirements

Software/Setup For this Class

Python 3 or higher.