Intermediate Object-Oriented Programming in Python
Build your OOP skills with descriptors, multilevel inheritance, and abstract base classes!
Start Course for Free4 Hours11 Videos40 Exercises
Create Your Free Account
or
By continuing, you accept our Terms of Use, our Privacy Policy and that your data is stored in the USA.Training 2 or more people?Try DataCamp For Business
Loved by learners at thousands of companies
Course Description
Level up your OOP skills!
Ready to unlock the power of object-oriented programming? You’re in the right place! In this course, you’ll build on the foundations of object-oriented programming to develop and hone the skills you need to write robust, production-ready code with Python.Multilevel inheritance and method overloading
Apply the basic principles of inheritance to create classes that inherit functionality from more than a single parent. Unlock a new array of capabilities with method overloading to create your own implementations of built-in operators, enabling your classes to be used in new and exciting ways.Type Hinting and Descriptors
Take your skills to the next level with type hinting, and watch as your code becomes easier to read, write, and troubleshoot. Customize the way an attribute is set, accessed, and deleted using descriptors and other Python-native techniques. Learn to build your own custom iterators to navigate a collection or generate a stream of data.Abstract Base Classes and Design Patterns
Discover the power of abstract base classes and how they can be used to create "blueprints" for similar classes. Practice building formal and informal interfaces to create and implement contracts between classes. Finally, the course will be wrapped up by architecting and building classes using the factory method design pattern.For Business
Training 2 or more people?
Get your team access to the full DataCamp library, with centralized reporting, assignments, projects and more- 1
Overloading and Multiple Inheritance
FreeRecall the fundamentals of object-oriented programming, and unlock the functionality of Python operators using overloading. Design and build classes that implement multiple and multilevel inheritance.
Fundamentals of Object-Oriented Programming50 xpCreating and using classes100 xpInheriting a Computer class100 xpOverloading the == operator100 xpOverloading Python Operators50 xpOverloading ==100 xpOverloading +100 xpCreating a Network of Computers100 xpMultiple Inheritance50 xpMultiple inheritance100 xpMultilevel inheritance100 xpMRO for multiple inheritance50 xp - 2
Custom Class Features and Type Hints
Level-up your Python skills with type hinting. Practice creating magic methods to handle attempts to access an attribute outside an object’s namespace, or customize how an attribute is set. Build descriptors to control the way an attribute is stored, retrieved or deleted, and create your own custom iterators to traverse a collection of objects or a data stream.
Type Hints50 xpUsing the Typing library100 xpType hinting with custom classes100 xpDescriptors50 xpAccessing the balance attribute100 xpUsing the @property decorator100 xpRegulating access to an account number50 xpCustomizing Attribute Access50 xpAccessing attributes that don't exist100 xpCustomizing attribute assignment with __setattr__100 xp__getattr__() and __setattr__()50 xpCustom Iterators50 xpBuilding a Playlist100 xpHandling a StopIteration error100 xpCreating a Lottery iterator100 xp - 3
Object-oriented design patterns
Learn to build "blueprints" for Python classes using abstract base classes. Explore how interfaces create contracts to be fulfilled by other classes. Leverage interfaces and build classes using the factory method design pattern.
Abstract Base Classes50 xpCreating an Abstract Base Class100 xpImplementing Abstract Base Classes100 xpCreating a Manufacturing Company100 xpInterfaces50 xpInformal interfaces100 xpBuilding a formal interface with ABC100 xpImplementing a formal interface with ABC100 xpFactory methods50 xpBuilding a factory method100 xpBuilding a data pipeline100 xpCreating a ChatBot100 xpCongratulations!50 xp
For Business
Training 2 or more people?
Get your team access to the full DataCamp library, with centralized reporting, assignments, projects and moreCollaborators
![Collaborator's avatar](https://assets.datacamp.com/authors/avatars/000/002/622/square/IMG-9715.jpg?1705586733)
![Collaborator's avatar](https://assets.datacamp.com/authors/avatars/000/002/761/square/WhatsApp_Image_2022-09-28_at_10.03.59.jpeg?1705586822)
![Collaborator's avatar](https://assets.datacamp.com/users/avatars/014/780/775/square/%D0%9E%D0%B1%D1%8C%D1%8F%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%9A%D0%BE%D0%BD%D0%BA%D0%B8%D0%BD_%281%29.jpg?1711368550)
Jake Roach
See MoreData Engineer
Jake Roach is a Field Data Engineer at Astronomer and DataCamp Instructor. A former Lead Data Engineer, Jake built a a state-of-the-art data platform for a multi-billion dollar organization, powered by Astronomer, Airflow, AWS, and Databricks. His passion for all things data engineering is contagious. Jake loves to write tutorials, teach DataCamp courses, and contribute to open source. Born and raised in Buffalo, NY, when he's not working with data, you can find him out at the golf course playing a quick nine holes before dark!
What do other learners have to say?
Join over 14 million learners and start Intermediate Object-Oriented Programming in Python today!
Create Your Free Account
or
By continuing, you accept our Terms of Use, our Privacy Policy and that your data is stored in the USA.