O'Reilly logo
live online training icon Live Online training

Pythonic object-oriented programming

Understanding OOP Using Python 3

Aaron Maxwell

As software systems grow in size, they threaten to collapse under their own complexity. The principles of object-oriented programming (OOP) combat that complexity. By using them, you dramatically increase the quality and scope of software you can create... ideas which translate to MANY languages. This courses teaches them using Python 3.

If you have experience coding in Python - either 2.x, or 3.x - but never learned object-oriented programming, this course is for you. Aaron Maxwell leads a mesmerizing four-hour hands-on training that will give you a solid understanding of foundational OOP concepts like inheritance, polymorphism, and composition, and how to express them in Python 3's rich object system. You'll build on your Python knowledge to leverage the benefits of OOP for code reuse, modularity, flexibility, and encapsulation, enabling you to write more powerful, complex, and impactful software than ever before.

If you're a developer with experience in another object-oriented language, along with a basic understanding of Python (e.g., how to write simple functions and work with the basic data structures), this training will help you quickly master everything Python's object system has to offer. You'll review the core, language-independent ideas of OOP, learn how Python's object system differs from other languages, and discover how to express valuable object patterns using battle-tested Python idioms.

What you'll learn-and how you can apply it

By the end of this live, online course, you’ll understand:

  • Key object-oriented concepts like encapsulation, composition, and inheritance
  • The power and usefulness of object-oriented programming
  • How to apply object-oriented programming in the Python code you write every day

And you’ll be able to:

  • Improve the maintainability and organization of your code
  • Leverage powerful classes and patterns in the code you write
  • Impress in interviews with your OOP knowledge
  • Transfer this knowledge to other object-oriented languages

This training course is for you because...

  • You're a data scientist who knows how write number-crunching Python scripts, and you're ready to upgrade them into sophisticated, powerful applications.
  • You're a sysadmin or DevOps engineer who wants to start writing more robust and powerful scripts.
  • You're a QA engineer who is sick and tired of writing the same scripts over and over, and you want to work with higher-level abstractions.
  • You're a self-taught programmer who knows how to write some useful software, but you're painfully aware of the gaps in your OOP knowledge.


  • Complete the Python Labs Prep
  • The ability to write Python scripts using functions, lists, and dictionaries, in either Python 3 or Python 2.7

  • Have Python 3.6+ installed on your machine. Earlier versions are NOT acceptable for this class.

  • You do NOT need to have any real Python 3 experience before class starts. But you must be able to write small Python 3 programs and run them. We'll teach you what's new in 3.x as we go along. Python 2 will not be covered.

About your instructor

  • Aaron Maxwell is author of the book "Powerful Python: The Most Impactful Patterns, Features, and Development Strategies Modern Python Provides." As a software engineer, he has worked in devops, test automation, and machine learning, and now divides his time between coding, writing, and teaching


The timeframes are only estimates and may vary according to how the class is progressing

  • The Key Ideas Of Powerful Objects
  • Writing Simple (And Useful) Python Classes
  • Leveraging Methods, And Python's special requirements for them
  • Encapsulation And Data Hiding
  • Inheritance and "is-a" relationships
  • The Different Kinds of Inheritance Hierarchies
  • Interfaces and Abstract Methods
  • The Single-Responsibility and Substitution Principles
  • Gracefully Refactoring Your Classes As Requirements Evolve
  • Wrap-up and Q&A