🐍 A class is a blueprint of an object. How an object should look like and what functionalities it must have on creation is mentioned in a class.
A real life comparison would be, say there is class called Dog. It has 4 limbs, 2 eyes, 1 mouth. These are its variables. Then a dog barks on being scared. This is it's functionality. Now lets say, a new dog is born. This dog is named Leo by us. Leo is an object created from the class Dog. Dog is like a blueprint, on the basis of which Leo will have its variables and functionalities defined.
A real life comparison would be, say there is class called Dog. It has 4 limbs, 2 eyes, 1 mouth. These are its variables. Then a dog barks on being scared. This is it's functionality. Now lets say, a new dog is born. This dog is named Leo by us. Leo is an object created from the class Dog. Dog is like a blueprint, on the basis of which Leo will have its variables and functionalities defined.
What is __init__()?
__init__() is a function of a class. It is called automatically when an object is created. Which means, we need not call it to use it. As soon as an object is created __init__() function is also called.
Continuing with the above real life example, in Dog class we can add __init__() function and define variables like limbs=4, ears=2, nose=1, mouth=1. So when Leo, as an object, is created or born, these variables will also be defined immediately.
What is __str__()?
__str__() is a function which is called upon when we print on screen an object. Say, we created an object named Leo from class Dog. When we say print(Leo), it calls __str__() function, if defined, and displays whatever is returned.
Run the below code in Jupyter notebook to clearly understand how Class, __init__(), and __str__() works
class Dog():
def __init__(self, dog_name, limbs, mouth):
self.dog_name = dog_name
self.limbs = limbs
self.mouth = mouth
def __str__(self):
return f"My name is {self.dog_name}"
leo = Dog('Leo', 4, 1)
print(leo)
Comments
Post a Comment