The Wayback Machine - https://web.archive.org/web/20240228181411/https://realpython.com/learning-paths/object-oriented-programming-oop-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 attributes (data) and behaviors (methods) are bundled into individual objects.
With this learning path, you’ll get a solid grasp of the fundamentals of OOP in Python. You’ll learn how to use this programming paradigm to make your programs easier to write and maintain.
Learning Path ⋅ 12 Resources
#1
Course
Learn how class constructors work in Python. You'll also explore Python's instantiation process, which has two main steps: instance creation and instance initialization.
#2
Course
Learn how to provide multiple constructors in your Python classes. To this end, you'll learn different techniques, such as checking argument types, using default argument values, writing class methods, and implementing single-dispatch methods.
#3
#4
Course
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.
#5
#6
Tutorial
Learn what Python descriptors are and how they're used in Python's internals. You'll learn about the descriptor protocol and how the lookup chain works when you access an attribute. You'll also see a few practical examples where Python descriptors can come in handy.
#7
#8
#9
#10
Course
Data classes are one of the new features introduced in Python 3.7. When using data classes, you don't have to write boilerplate code to get proper initialization, representation, and comparisons for your objects.
#11
Course
Metaclasses are an important but mysterious behind-the-scenes mechanism for instantiating classes in Python. In this video course, you'll learn how Python's metaclasses work in object-oriented programming.
#12