Why does class exist when we have functions? I know how to create a class but I don't understand why we need to use class.
Functions are basically a way to reuse code. They can only store what you want to do with it.
Classes can store multiple functions and variables in them. You can also create instances of classes which can store different things.
class Car: wheels = 4 def __init__(self, colour): self.colour = colour car1 = Car("red") car2 = Car("blue") print(car1.colour) # prints "red" print(car2.colour) # prints "blue" print(car1.wheels) # prints 4 print(car2.wheels) # prints 4 car2.wheels = 18 print(car1.wheels) # prints 4 print(car2.wheels) # prints 18
Car has 2 instances:
car2, and it has a two variables,
wheels. A function wouldn't be able to store all this.
Classes can be useful for creating instances and applying values to an object
Functions are reusable pieces of code used for doing stuff
Classes are also reusable, but can apply their values to a variable
I use them for when I want a set of available functions for a variable instance.
Before I knew how to make classes, I created a set of functions that did different things to lists. The object itself was never modified, but a copy was made and returned. With classes, I could drop a parameter (as I had a parameter for the array) and modify the original object.