types of variables and methods in class
In Python classes, you can have different types of variables and methods, each with a specific scope and purpose. They are primarily categorized based on whether they belong to the class itself or to an object (instance) of the class.
1. Types of Variables
Variables in a class are called attributes.
a. Instance Variables 🧑💻
These variables are unique to each object (instance) of the class. They are defined inside the __init__ constructor and are prefixed with self.. Each object gets its own copy of these variables.
Example:
- For a
Carclass,color,make, andmodelare instance variables. - A
redHonda Civic and ablueToyota Corolla are two different objects of theCarclass, and theircolorandmakeproperties are unique to each one.
Python
class Car:
def __init__(self, color, make):
self.color = color # Instance variable
self.make = make # Instance variable
my_car = Car('red', 'Honda')
your_car = Car('blue', 'Toyota')
print(my_car.color) # Output: red
print(your_car.color) # Output: blue
b. Class Variables ⚙️
These variables are shared by all objects of the class. They are defined directly inside the class but outside of any method. Class variables are useful for storing data that is common to all instances.
Example:
- For a
Carclass,wheelscould be a class variable, since all cars (generally) have four wheels. wheels = 4is defined once and is accessible by allCarobjects.
Python
class Car:
wheels = 4 # Class variable
def __init__(self, color):
self.color = color
car1 = Car('red')
car2 = Car('blue')
print(car1.wheels) # Output: 4
print(car2.wheels) # Output: 4
2. Types of Methods
Methods in a class are called based on how they access and manipulate class or instance variables.
a. Instance Methods 🏃♂️
These are the most common type of methods. They must have self as their first parameter. They can access and modify both instance variables and class variables.
Example:
- The
accelerate()method in aCarclass is an instance method. It needs to access and change thespeedinstance variable of that specific car.
Python
class Car:
def __init__(self, speed):
self.speed = speed
def accelerate(self, increment): # Instance method
self.speed += increment
my_car = Car(60)
my_car.accelerate(10)
print(my_car.speed) # Output: 70
b. Class Methods 📊
These methods are associated with the class itself, not with a specific object. They are defined using the @classmethod decorator and take cls (for class) as their first parameter instead of self. They can only access class variables, not instance variables.
Example:
- A
Carclass might have a class method to create a car with a standard color.
Python
class Car:
# A class variable
standard_color = 'silver'
def __init__(self, color):
self.color = color
@classmethod
def get_standard_car(cls): # Class method
return cls(cls.standard_color)
car = Car.get_standard_car()
print(car.color) # Output: silver
c. Static Methods 🛠️
Static methods are general-purpose utility methods that belong to the class but do not interact with either instance or class variables. They are defined using the @staticmethod decorator and do not take self or cls as a parameter. They are essentially regular functions that are logically grouped with the class.
Example:
- A static method
get_vehicle_type()in aVehicleclass might just return a string like"This is a land vehicle."It doesn’t need to know anything about a specific vehicle instance or the class’s shared data.
Python
class Vehicle:
@staticmethod
def get_vehicle_type(): # Static method
return "This is a land vehicle."
print(Vehicle.get_vehicle_type()) # Output: This is a land vehicle.