Object oriented programming is essential for writing clean & modular code!
Let's clearly understand OOPs with Python! ๐
A Thread ๐งต๐
We break it down to 6 important concepts:
- Object ๐
- Class ๐๏ธ
- Inheritance ๐งฌ
- Encapsulation ๐
- Abstraction ๐ญ
- Polymorphism ๐
Let's take them one-by-one... ๐
1๏ธโฃ Object ๐
Just look around, everything you see can be treated as an object.
For instance a Car, Dog, your Laptop are all objects.
An Object can be defined using 2 things:
- Properties: that describe an object
- Behaviour: the functions that an object can perform
...๐
For example, a Car is an object that has properties such as color & model, and behaviours such as accelerating, braking & turning.
But, how do we create these objectsโ๐ค
This is where we need to understand Classes!
...๐
2๏ธโฃ Class ๐๏ธ
A class is like a blueprint for creating objects.
It defines a set of properties & functions (methods) that will be common to all objects created from the class.
So, we start with a simple example & follow along!
Let's define a class Car & create it's Object๐
3๏ธโฃ Inheritance ๐งฌ
Let's say we want to create an Electric car & don't want to define all the properties and methods of the basic Car class.
Inheritance helps us to inherit all the properties/methods of parent class & add new ones or override existing.
Check this out๐
4๏ธโฃ Encapsulation ๐
Encapsulation helps to bundle data and methods inside a class, restricting direct access to certain attributes and methods.
We use private attributes/methods (with a `_` or `__` prefix) to achieve this.
Here's an example ๐
5๏ธโฃ Abstraction ๐ญ
This concept focuses on exposing only essential information to the outside world while hiding implementation details.
We use abstract classes and methods to define a common interface.
Here's an example ๐
At this point if Abstraction and Encapsulation confuse you! ๐
Abstraction conceals the implementation details, but doesn't hide the data itself.
On the other hand, Encapsulation hides the data and restricts unwanted use from external sources.
Cheers! ๐ฅ
6๏ธโฃ Polymorphism ๐
This allows us to use a single interface for different data types or classes.
We can achieve this through method overriding, where a subclass provides a different implementation for a method defined in its parent class.
Let's understand with an example ๐
That's a wrap!
If you interested in:
- Python ๐
- Data Science ๐
- Machine Learning ๐ค
- Maths for ML ๐งฎ
- MLOps ๐
- CV/NLP ๐ฃ
- LLMs ๐ง
I'm sharing daily content over here, follow me โ @akshay_pachaar if you haven't already!
Newletter:
Cheers! ๐ฅmlspring.beehiiv.com
Share this Scrolly Tale with your friends.
A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.