Python Object Oriented Programming (OOP) - Full Course for Beginners

In this comprehensive and beginner-friendly course, you will learn all of the tools that you need to become a great OOP programmer, writing clean and maintainable software.

What you will learn:
The fundamentals of OOP: creating classes and objects, attributes and methods, getters and setters, properties, static attributes and methods, access modifiers.
OOP Principles such as inheritance, encapsulation, abstraction, polymorphism.

💻 Github repo: github.com/DoableDanny/oop-in-python-course

✏️ Course created by Dan Adams. Check out his channel: youtube.com/channel/UC0URylW_U4i26wN231yRqvA

A Python Beginner-to-Advanced OOP course is also available, in video and book form:
🔗 Full Udemy course: udemy.com/course/python-oop-object-oriented-programming-from-beginner-to-pro/
🔗 eBook PDF: doabledanny.gumroad.com/l/python-oop-beginner-to-pro
🔗 Amazon Kindle eBook & physical book: amazon.com/dp/B0DR6ZPZQ8

❤️ Support for this channel comes from our friends at Scrimba – the coding platform that's reinvented interactive learning: https://scrimba.com/freecodecamp

⭐️ Contents ⭐️
(0:00:00) Intro
(0:04:16) Creating classes and objects
(0:15:15) Combining objects
(0:21:43) Recap: classes, objects, attributes, methods and self
(0:26:46) Example: a Person class
(0:34:42) Accessing and modifying object data
(0:41:13) Access modifiers: protected attributes
(0:45:39) When should you make an attribute protected?
(0:48:37) Python's "Consenting Adults" philosophy and private attributes
(0:51:17) When to use protected vs private attributes
(0:53:27) Creating getter and setter methods
(0:57:22) Why do we create getters and setters?
(1:03:37) Properties: creating a getter property. Properties vs getters and setters
(1:10:39) Properties: creating a setter property
(1:15:39) Static attributes
(1:23:19) Static attributes vs instance attributes
(1:25:13) Static methods
(1:33:20) Static methods: when to use them?
(1:34:46) Protected and private methods
(1:39:55) Encapsulation
(1:51:53) Encapsulation: why is it important?
(1:55:10) Abstraction
(2:05:08) Inheritance
(2:15:49) Polymorphism: intro and naive solution
(2:25:06) Polymorphism: refactored solution
(2:35:35) Conclusion

🎉 Thanks to our Champion and Sponsor supporters:
👾 Drake Milly
👾 Ulises Moralez
👾 Goddard Tan
👾 David MG
👾 Matthew Springman
👾 Claudio
👾 Oscar R.
👾 jedi-or-sith
👾 Nattira Maneerat
👾 Justin Hual

--

Learn to code for free and get a developer job: https://www.freecodecamp.org

Read hundreds of articles on programming: https://freecodecamp.org/news