Object-Oriented Programming (OOP) With Python
Learning Path ⋅ Skills: OOP Fundamentals, Classes & Objects, Methods

Object-oriented Programming, or OOP for short, is a programming paradigm which provides a means of structuring programs so that properties and behaviors are bundled into individual objects.
With this learning path you’ll get a solid grasp of the fundamentals of OOP in Python and how you can use this programming paradigm to make your programs easier to write and maintain.
Object-Oriented Programming (OOP) With Python
Learning Path ⋅ 8 Resources
Course
Intro to Object-Oriented Programming (OOP) in Python
Learn the fundamentals of object-oriented programming (OOP) in Python and how to work with classes, objects, and constructors.
Course
Pythonic OOP String Conversion: __repr__ vs __str__
In this tutorial series you'll do a deep dive on how Python's to-string conversion using the __repr__ and __str__ "magic methods" works and how you can add implement them in your own classes and objects.
Course
Supercharge Your Classes With Python super()
Learn how to leverage single and multiple inheritance in your object-oriented application to supercharge your classes with Python super().
Course
Inheritance and Composition: A Python OOP Guide
Learn about inheritance and composition in Python. You'll improve your object-oriented programming (OOP) skills by understanding how to use inheritance and composition and how to leverage them in their design.
Course
OOP Method Types in Python: @classmethod vs @staticmethod vs Instance Methods
What's the difference between @classmethod, @staticmethod, and "plain/regular" instance methods in Python? You'll know the answer after watching this video course.
Tutorial
Operator and Function Overloading in Custom Python Classes
How to overload built-in functions and operators in your custom Python classes in order to make your code more Pythonic.
Tutorial
Data Classes in Python 3.7+ (Guide)
Data classes are one of the new features of Python 3.7. With data classes you do not have to write boilerplate code to get proper initialization, representation and comparisons for your objects.
Tutorial
Python Metaclasses
How Python's metaclasses work as an OOP concept, what they are good for—and why you might want to avoid them in your own programs.
Got feedback on this learning path?
Looking for real-time conversation? Visit the Real Python Community Chat or join the next “Office Hours” Live Q&A Session. Happy Pythoning!