Title: Object-Oriented Programming (OOP) (Learning Path) – Real Python
Open Graph Title: Object-Oriented Programming (OOP) (Learning Path) – Real Python
Description: Dive into Python OOP! Learn everything from basic classes to advanced topics like using super(), data classes, and design patterns. Enhance your coding with magic methods, managed attributes, and SOLID principles and start building robust, scalable applications today.
Open Graph Description: Dive into Python OOP! Learn everything from basic classes to advanced topics like using super(), data classes, and design patterns. Enhance your coding with magic methods, managed attributes, and SOLID principles and start building robust, scalable applications today.
Opengraph URL: https://realpython.com/learning-paths/object-oriented-programming-oop-python/
X: @realpython
Domain: realpython.com
{
"@context": "https://schema.org",
"@type": "ItemList",
"@id": "https://realpython.com/learning-paths/object-oriented-programming-oop-python/",
"url": "https://realpython.com/learning-paths/object-oriented-programming-oop-python/",
"name": "Object-Oriented Programming (OOP)",
"description": "Dive into Python OOP! Learn everything from basic classes to advanced topics like using super(), data classes, and design patterns. Enhance your coding with magic methods, managed attributes, and SOLID principles and start building robust, scalable applications today.",
"itemListOrder": "ItemListOrderAscending",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"item": {
"@type": "Course",
"@id": "https://realpython.com/courses/intro-object-oriented-programming-oop-python/",
"url": "https://realpython.com/courses/intro-object-oriented-programming-oop-python/",
"name": "A Conceptual Primer on OOP in Python",
"description": "Learn fundamental concepts of OOP in Python and how to work with classes, objects, and constructors.",
"provider": {
"@type": "Organization",
"@id": "https://realpython.com/#organization",
"name": "Real Python",
"url": "https://realpython.com",
"logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
},
"hasCourseInstance": {
"@type": "CourseInstance",
"courseMode": "Online",
"courseWorkload": "PT95M16S"
},
"offers": [
{
"@type": "Offer",
"category": "Subscription"
}
]
}
},
{
"@type": "ListItem",
"position": 2,
"item": {
"@type": "Course",
"@id": "https://realpython.com/courses/python-class-object/",
"url": "https://realpython.com/courses/python-class-object/",
"name": "Class Concepts: Object-Oriented Programming in Python",
"description": "Python uses object-oriented programming to group data and associated operations together into classes. In this video course, you'll learn how to write object-oriented code with classes, attributes, and methods.",
"provider": {
"@type": "Organization",
"@id": "https://realpython.com/#organization",
"name": "Real Python",
"url": "https://realpython.com",
"logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
},
"hasCourseInstance": {
"@type": "CourseInstance",
"courseMode": "Online",
"courseWorkload": "PT130M47S"
},
"offers": [
{
"@type": "Offer",
"category": "Subscription"
}
]
}
},
{
"@type": "ListItem",
"position": 3,
"item": {
"@type": "Course",
"@id": "https://realpython.com/courses/python-data-classes/",
"url": "https://realpython.com/courses/python-data-classes/",
"name": "Using Data Classes in Python",
"description": "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.",
"provider": {
"@type": "Organization",
"@id": "https://realpython.com/#organization",
"name": "Real Python",
"url": "https://realpython.com",
"logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
},
"hasCourseInstance": {
"@type": "CourseInstance",
"courseMode": "Online",
"courseWorkload": "PT109M39S"
},
"offers": [
{
"@type": "Offer",
"category": "Subscription"
}
]
}
},
{
"@type": "ListItem",
"position": 4,
"item": {
"@type": "Course",
"@id": "https://realpython.com/courses/using-python-class-constructors/",
"url": "https://realpython.com/courses/using-python-class-constructors/",
"name": "Using Python Class Constructors",
"description": "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.",
"provider": {
"@type": "Organization",
"@id": "https://realpython.com/#organization",
"name": "Real Python",
"url": "https://realpython.com",
"logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
},
"hasCourseInstance": {
"@type": "CourseInstance",
"courseMode": "Online",
"courseWorkload": "PT78M13S"
},
"offers": [
{
"@type": "Offer",
"category": "Subscription"
}
]
}
},
{
"@type": "ListItem",
"position": 5,
"item": {
"@type": "Course",
"@id": "https://realpython.com/courses/multiple-constructors-python/",
"url": "https://realpython.com/courses/multiple-constructors-python/",
"name": "Using Multiple Constructors in Your Python Classes",
"description": "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.",
"provider": {
"@type": "Organization",
"@id": "https://realpython.com/#organization",
"name": "Real Python",
"url": "https://realpython.com",
"logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
},
"hasCourseInstance": {
"@type": "CourseInstance",
"courseMode": "Online",
"courseWorkload": "PT95M34S"
},
"offers": [
{
"@type": "Offer",
"category": "Subscription"
}
]
}
},
{
"@type": "ListItem",
"position": 6,
"item": {
"@type": "Course",
"@id": "https://realpython.com/courses/python-super/",
"url": "https://realpython.com/courses/python-super/",
"name": "Supercharge Your Classes With Python super()",
"description": "Learn how to leverage single and multiple inheritance in your object-oriented application to supercharge your classes with Python super().",
"provider": {
"@type": "Organization",
"@id": "https://realpython.com/#organization",
"name": "Real Python",
"url": "https://realpython.com",
"logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
},
"hasCourseInstance": {
"@type": "CourseInstance",
"courseMode": "Online",
"courseWorkload": "PT58M5S"
},
"offers": [
{
"@type": "Offer",
"category": "Subscription"
}
]
}
},
{
"@type": "ListItem",
"position": 7,
"item": {
"@type": "Course",
"@id": "https://realpython.com/courses/python-method-types/",
"url": "https://realpython.com/courses/python-method-types/",
"name": "OOP Method Types in Python: @classmethod vs @staticmethod vs Instance Methods",
"description": "What's the difference between @classmethod, @staticmethod, and \"plain/regular\" instance methods in Python? You'll know the answer after watching this video course.",
"provider": {
"@type": "Organization",
"@id": "https://realpython.com/#organization",
"name": "Real Python",
"url": "https://realpython.com",
"logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
},
"hasCourseInstance": {
"@type": "CourseInstance",
"courseMode": "Online",
"courseWorkload": "PT30M14S"
},
"offers": [
{
"@type": "Offer",
"category": "Subscription"
}
]
}
},
{
"@type": "ListItem",
"position": 8,
"item": {
"@type": "Course",
"@id": "https://realpython.com/courses/magic-methods-classes/",
"url": "https://realpython.com/courses/magic-methods-classes/",
"name": "Python's Magic Methods in Classes",
"description": "Learn what magic methods are in Python, how they work, and how to use them in your custom classes to support powerful features in your object-oriented code.",
"provider": {
"@type": "Organization",
"@id": "https://realpython.com/#organization",
"name": "Real Python",
"url": "https://realpython.com",
"logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
},
"hasCourseInstance": {
"@type": "CourseInstance",
"courseMode": "Online",
"courseWorkload": "PT135M22S"
},
"offers": [
{
"@type": "Offer",
"category": "Subscription"
}
]
}
},
{
"@type": "ListItem",
"position": 9,
"item": {
"@type": "Course",
"@id": "https://realpython.com/courses/getters-and-setters-python/",
"url": "https://realpython.com/courses/getters-and-setters-python/",
"name": "Getters and Setters in Python",
"description": "Learn what getter and setter methods are, how Python properties are preferred over getters and setters when dealing with attribute access and mutation, and when to use getter and setter methods instead of properties in Python.",
"provider": {
"@type": "Organization",
"@id": "https://realpython.com/#organization",
"name": "Real Python",
"url": "https://realpython.com",
"logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
},
"hasCourseInstance": {
"@type": "CourseInstance",
"courseMode": "Online",
"courseWorkload": "PT80M41S"
},
"offers": [
{
"@type": "Offer",
"category": "Subscription"
}
]
}
},
{
"@type": "ListItem",
"position": 10,
"item": {
"@type": "Course",
"@id": "https://realpython.com/courses/property-python/",
"url": "https://realpython.com/courses/property-python/",
"name": "Managing Attributes With Python's property()",
"description": "Learn how to create managed attributes, also known as properties, using Python's property() in your custom classes.",
"provider": {
"@type": "Organization",
"@id": "https://realpython.com/#organization",
"name": "Real Python",
"url": "https://realpython.com",
"logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
},
"hasCourseInstance": {
"@type": "CourseInstance",
"courseMode": "Online",
"courseWorkload": "PT144M30S"
},
"offers": [
{
"@type": "Offer",
"category": "Subscription"
}
]
}
},
{
"@type": "ListItem",
"position": 12,
"item": {
"@type": "Course",
"@id": "https://realpython.com/courses/python-class-inheritance/",
"url": "https://realpython.com/courses/python-class-inheritance/",
"name": "Inheritance and Internals: Object-Oriented Programming in Python",
"description": "Learn about the various types of inheritance that you can use to write object-oriented code in Python. These include class inheritance, multilevel inheritance, and multiple inheritance, along with special methods and abstract base classes.",
"provider": {
"@type": "Organization",
"@id": "https://realpython.com/#organization",
"name": "Real Python",
"url": "https://realpython.com",
"logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
},
"hasCourseInstance": {
"@type": "CourseInstance",
"courseMode": "Online",
"courseWorkload": "PT121M24S"
},
"offers": [
{
"@type": "Offer",
"category": "Subscription"
}
]
}
},
{
"@type": "ListItem",
"position": 13,
"item": {
"@type": "Course",
"@id": "https://realpython.com/courses/inheritance-composition-python/",
"url": "https://realpython.com/courses/inheritance-composition-python/",
"name": "Inheritance and Composition: A Python OOP Guide",
"description": "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.",
"provider": {
"@type": "Organization",
"@id": "https://realpython.com/#organization",
"name": "Real Python",
"url": "https://realpython.com",
"logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
},
"hasCourseInstance": {
"@type": "CourseInstance",
"courseMode": "Online",
"courseWorkload": "PT368M22S"
},
"offers": [
{
"@type": "Offer",
"category": "Subscription"
}
]
}
},
{
"@type": "ListItem",
"position": 14,
"item": {
"@type": "Course",
"@id": "https://realpython.com/courses/factory-method-pattern/",
"url": "https://realpython.com/courses/factory-method-pattern/",
"name": "Implementing the Factory Method Pattern in Python",
"description": "Learn how to use the Factory Method pattern in Python, when to apply it, how to refactor your code for it, and explore a reusable implementation.",
"provider": {
"@type": "Organization",
"@id": "https://realpython.com/#organization",
"name": "Real Python",
"url": "https://realpython.com",
"logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
},
"hasCourseInstance": {
"@type": "CourseInstance",
"courseMode": "Online",
"courseWorkload": "PT274M7S"
},
"offers": [
{
"@type": "Offer",
"category": "Subscription"
}
]
}
},
{
"@type": "ListItem",
"position": 15,
"item": {
"@type": "Course",
"@id": "https://realpython.com/courses/solid-principles-python/",
"url": "https://realpython.com/courses/solid-principles-python/",
"name": "Design and Guidance: Object-Oriented Programming in Python",
"description": "Learn about the SOLID principles, which are five well-established standards for improving your object-oriented design in Python. By applying these principles, you can create object-oriented code that is more maintainable, extensible, scalable, and testable.",
"provider": {
"@type": "Organization",
"@id": "https://realpython.com/#organization",
"name": "Real Python",
"url": "https://realpython.com",
"logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
},
"hasCourseInstance": {
"@type": "CourseInstance",
"courseMode": "Online",
"courseWorkload": "PT80M56S"
},
"offers": [
{
"@type": "Offer",
"category": "Subscription"
}
]
}
}
]
}
| author | Real Python |
| twitter:card | summary_large_image |
| twitter:image | https://files.realpython.com/media/pcl-Class-Concepts-Object-Oriented-Programming-in-Python_Watermarked.cec519e31003.jpg |
| og:image | https://files.realpython.com/media/pcl-Class-Concepts-Object-Oriented-Programming-in-Python_Watermarked.cec519e31003.jpg |
| twitter:creator | @realpython |
| og:type | article |
Links:
Viewport: width=device-width, initial-scale=1, shrink-to-fit=no, viewport-fit=cover
Robots: max-image-preview:large