Variable declaration in class

What is the difference between a self variable and a normal variable inside a class function.
When to use what?

Hi @Vedanth_Subramaniam,
Broadly, the difference between the two is:
Instance variables (self.var) can take different values for different instances of the same class, whereas Class variables will have the same value for all the instances of that particular class.
You can refer this article for more: Distinguishing Instance Variables from Class Variables in python