Object-oriented Python

Finally understand object-oriented programming in Python: Classes, instances, attributes, methods, and inheritance

About The Course

Are you confused by object-oriented programming? If so, you’re not alone: When I ask people what frustrates them most about programming in Python, “objects” is one of the first answers that I get.


This makes sense: Object-oriented programming isn’t necessarily difficult, but it involves concepts and syntax that are different from traditional, procedural programming. It requires that you think differently, and that you structure your program in a different way.


This course, the same one that I’ve been giving to Fortune 500 companies for more than two decades, will get you up to speed on Python objects. You’ll understand not only how to write your own classes, but how object-oriented programming exists throughout Python, and how understand objects help you to understand how the core data structures work. Along the way, you’ll learn about attributes (easily one of the most important topics, even though it’s ignored by most people), inheritance, and how to structure your programs.


After taking this course, you’ll finally understand objects, and will know how to use them to make your code easier to write, maintain, and extend.

This Course Will Show You How To...

This course will teach you everything you need to know to get started with object-oriented programming in Python:

What is object-oriented programming?


Classes and instances


What __init__ really does (and doesn't) do


The ICPO rule for attribute lookup


Magic methods






Class attributes



Along the way, you'll learn the differences between how Python approaches object-oriented programming and how some other languages, such as Java and C#, are designed.

Preview The Course


Visualizing methods

Class exercise solutions

Course Contents

Course Length

9.5 Hours

Number of Lessons


Training Materials

8 PDFs

Coding Exercises


  • Welcome (3 mins)
  • What is object oriented programming? (9 mins)
  • What are Python Objects? (16 mins)
  • Methods vs. functions (6 mins)
  • The simplest Python class (9 mins)
  • Adding attributes (5 mins)
  • __init __ (9 mins)
  • More examples of objects (10 mins)
  • Class exercises (5 mins)
  • Class exercise solutions (14 mins)
  • Methods (10 mins)
  • Method examples (12 mins)
  • Method exercises (6 mins)
  • Method exercise solutions (27 mins)
  • Visualizing methods (6 mins)
  • Classes vs. functions (7 mins)
  • Class attributes (15 mins)
  • Class attribute exercises (4 mins)
  • Class attribute exercise solutions (8 mins)
  • Basic inheritance (13 mins)
  • Inheritance exercises (3 mins)
  • Inheritance exercise solutions (10 mins)
  • More on inheritance (10 mins)
  • len (5 mins)
  • __str__and__repr__ (8 mins)
  • Magic method exercises (4 mins)
  • Magic method exercise solutions (13 mins)
  • Magic methods everywhere (7 mins)
  • Summary exercise (6 mins)
  • Summary exercise solution (17 mins)
  • Summary (4 mins)

This Course Is Perfect For...


Developers familiar with Python's core data structures and functions who want to use object-oriented techniques in their code. Newcomers to object-oriented programming will get a gentle introduction — and those familiar with objects in other languages (e.g., Java and C#) will learn the differences in Python's interpretation.




Save 20%


One-Time Purchase (Lifetime Access)
$ 180 One-Time
  • Create your own Python classes
  • Learn and use inheritance
  • Understand how Python's objects really work



Access All My Training
$ 40 Per Month
  • All my Python courses
  • Monthly office hours + special events
  • Private forum


One-Time Purchase (Lifetime Access)
$ 180 One-Time
  • Create your own Python classes
  • Learn and use inheritance
  • Understand how Python's objects really work



Access All My Training
$ 400 Per Year
  • All my Python courses
  • Monthly office hours + special events
  • Private forum

100% Money Back Guarantee

I’m a one-person company dedicated to improving your career via Python and related technologies. If you haven’t gotten value from any of my courses, then just tell me — and I’ll refund your money.

Meet Your Instructor

Reuven is a full-time Python trainer. In a given year, he teaches courses at companies in the United States, Europe, Israel, India, and China — as well as to people around the world, via his online courses.

Reuven created one of the first 100 Web sites in the world just after graduating from MIT’s computer science department. He opened Lerner Consulting in 1995, and has been offering training services since 1996.

In 2020, Reuven published “Python Workout,” a collection of Python exercises with extensive explanations, published by Manning. He’s currently finishing edits on “Pandas Workout,” a similar collection of exercises using the “Pandas” library for data analytics.

Reuven’s free, weekly “Better developers” newsletter, about Python and software engineering, is read by more than 30,000 developers around the globe. His “Trainer weekly” newsletter is popular among people who give corporate training.

Reuven’s most recent venture is Bamboo Weekly: Every Wednesday, he presents a problem based on current events, using a public data set. And every Thursday, he shared detailed solutions to those problems using Pandas.

Reuven’s monthly column appeared in Linux Journal from 1996 until the magazine’s demise in 2019. He was also a panelist on both the Business of Freelancing and Freelancers Show podcasts.

Reuven has a bachelor’s degree in computer science and engineering from MIT, and a PhD in learning sciences from Northwestern University. He lives in Modi’in, Israel with his wife and three children.