1. __init__:
- The __init__ method is used to initialize the attributes of an object when it is created.
- It is automatically called when a new object is instantiated from a class.
- The `__init__` method takes the `self` parameter (a reference to the instance) along with other arguments needed to initialize the object.
Example:

2. __str__:
- The __str__ method is used to provide a human-readable string representation of an object.
- It is called when the str() function is used on an object or when the object is printed.
- The __str__ method should return a string representation of the object.
- Example:

3. __repr__:
- The __repr__ method is used to provide a string representation of an object that can be used to recreate the object.
- It is called when the object's representation is displayed in the Python shell.
- The __repr__ method should return a string that can be evaluated to create a similar object.
- If __str__ is not implemented, __repr__ will be used as a fallback.
Example:

These special methods allow you to customize the behavior of your objects, such as their initialization, string representation, and object recreation.
FYI
- __repr__ is like describing your robot in a way that other people who understand robots can easily understand. It's like giving technical details and instructions on how to build the robot exactly the same way. For example, you might say, "This robot has a silver body, blue eyes, and can walk, talk, and dance. To build it, you'll need some metal, wires, and programming skills."
- __str__ is like describing your robot in a way that anyone can understand, even if they don't know much about robots. It's like telling a story about your robot and what it can do. For example, you might say, "This robot is super cool! It has shiny silver body, sparkling blue eyes, and it can walk, talk, and dance. It's the best companion for adventures and fun!"
There exist special methods for the arithmetic and relational operators in Python that can be implemented to determine how these operators are evaluated for a given object type.

