Object-oriented Python by Reuven M. Lerner

Object-oriented Python

Learn the how and why of Python objects — and write more powerful code in less time


Object-oriented programming is a common — maybe even the dominant — style of programming in use today.   The  whole point of objects is to make your code easier to write, maintain,  and reuse.  But in many languages, these advantages get lost in a sea of syntax and buzzwords, making it hard for newcomers to adjust.

By contrast, Python's objects are simple to write, understand, and maintain. They are more flexible than their counterparts in static, compiled languages, And even newcomers to objects can start to define and use classes, methods, and instances in a short period of time.

But: Just because  Python's objects are easy to learn and use doesn't mean that they're  always easy to understand. In order  to use Python objects correctly, you need to understand how Python's object system works — and in particular, how attributes work.

This course,  based on the  Python courses I give to companies around the world (e.g., Apple, Cisco, IBM, Intel, PayPal, Western Digital, and VMWare), introduces Python objects from the ground up. It's aimed at beginner-to-intermediate Python developers who have used and even written Python objects before, but don't understand how the object system really works.  Through numerous video  lessons and exercises, this course will teach you what you need in order to take advantage of Python's objects.  I cover such topics as:
  • What is an object?
  • Setting and retrieving attributes
  • Creating classes
  • The role of __init__ 
  • The role of self
  • Writing and calling methods
  • Attribute search, and why we care
  • Class attributes
  • Inheritance

This course, like my others, aims to make you a more fluent — and thus more valuable — Python developer. And like my other courses, it has a 100% satisfaction guarantee.

What do you get:
  • More than 4 hours of video lectures
  • 15 exercises to practice and learn — the same ones I use at my on-site courses
  • The Jupyter notebook I used in my screencasts
  • PDF slides from my on-site courses
  • Access to my live, video office hours

What's included?

Video Icon 32 videos File Icon 8 files


Section 1: Introduction
01 Welcome
3 mins
02 What is object oriented programming?
9 mins
Section 2: Defining a class
03 What are Python objects?
16 mins
04 Methods vs. functions
6 mins
05 The simplest Python class
9 mins
06 Adding attributes
5 mins
07 __init__
9 mins
08 __init__ and parameters
6 mins
09 More examples of objects
10 mins
10 Class exercises
5 mins
1022 Bytes
11 Class exercise solutions
14 mins
Section 3: Methods
12 Methods
10 mins
13 Method examples
12 mins
14 Method exercises
6 mins
1016 Bytes
15 Method exercise solutions
27 mins
16 Visualizing methods
6 mins
Section 4: Class attributes
17 Classes vs. functions
7 mins
18 Class attributes
15 mins
19 Class attribute exercises
4 mins
622 Bytes
20 Class attribute exercise solutions
8 mins
Section 5: Inheritance
21 Basic inheritance
13 mins
605 Bytes
22 Inheritance exercises
3 mins
23 Inheritance exercise solutions
10 mins
24 More on inheritance
10 mins
Section 6: Magic methods
25 len
5 mins
26 __str__ and __repr__
8 mins
27 Magic method exercises
4 mins
923 Bytes
28 Magic method exercise solutions
13 mins
29 Magic methods everywhere
7 mins
Section 7: Summary project
30 Summary exercise
6 mins
960 Bytes
31 Summary exercise solution
17 mins
Section 8: Conclusion
32 Summary
4 mins
Python objects.ipynb
102 KB
11 Objects.pdf
112 KB

Become a better developer.

I'm Reuven — and for 20 years, I've spent just about every day teaching Python, data science, and Git at some of the world's best-known companies. 

I've recorded my most popular courses here, for you to learn these skills — even if you don't work for a big company.

After taking my courses, you'll be able to to solve bigger problems in less time — allowing you to do your current job better, or to find a new, better job.


I'm a student or pensioner. Can I get a discount?

I know very well what it's like to be a student on a limited budget; I spent 11 years (!) on my PhD.  So yes, as with all of my products, there's a student discount.  E-mail me (reuven@lerner.co.il), and I'll send you the appropriate coupon code.

And while I don't yet know what it's like to be a pensioner/retiree, I do understand that it can be similarly challenging. For that reason, I have the same offer: E-mail me, and I'll give you the same discount as I give to students.

I bought your previous "Object oriented programming in Python," a live recording from the summer of 2017. Do I have to pay for this course?

Not at all!  E-mail me, and I'll send you a coupon code for a free upgrade. My "forever free" policy applies to upgrades and updates to my courses.  This course covers about half of the topics in that "Functional programming" course, although it has more exercises and explanations about comprehensions — and is thus a free upgrade from it.

What if I have more questions?

Just e-mail me at reuven@lerner.co.il, and I'll try to answer as quickly as possible.

Can I buy this course for my team at work?

The course, as sold here, is for individuals.  However, e-mail me (at reuven@lerner.co.il) if you want to make a group or team purchase, and I'll provide you with an appropriate discount code for each team member to use.

What version of Python do you use?

This course uses Python 3.6, the most recent as of when I recorded it.  Just about everything should work the same in Python 2.7, if you're still using it — although the Jupyter notebook that I provide only works in 3.6.

This price is far too high for someone living in my country. Do you offer "parity pricing," or something like it, for people outside of the world's wealthiest countries?

Indeed, I do: If your country is not one of the 30 with the highest per-capita GDP (as indicated here, at https://en.wikipedia.org/wiki/List_of_countries_by_GDP_(nominal)_per_capita), then e-mail me.  I'll send you a coupon for 40% off the price, which I believe (hope) makes it more affordable.

Note that this applies to people currently living in one of those non-wealthy countries; not to people originally from there.

What if I dislike the course?

If you didn't get any value from the course, then just e-mail me (reuven@lerner.co.il) and ask for a refund.