Skip to content

Why Use Classes in Python to Group Data and Behavior

Problem

I wrote small scripts with plain variables and functions, and it was fine. But once I added more data, everything felt scattered. I did not know why classes were even worth learning.

Environment

  • Python 3.11
  • macOS

What happened?

I started with a simple vehicle example using loose variables. It worked, but the data was spread out.

vehicles_flat.py
bike_name = "my bike"
bike_tires = 2
car_name = "my car"
car_tires = 4
def describe_vehicle(name: str, tires: int) -> str:
return f"{name} has {tires} tires"
print(describe_vehicle(bike_name, bike_tires))
print(describe_vehicle(car_name, car_tires))
Terminal window
python3 vehicles_flat.py
Terminal window
my bike has 2 tires
my car has 4 tires

When I tried to add speed, color, and more behavior, I had to pass even more variables into every function.

How to solve it?

I grouped the data and behavior into a class. The object now carries its own state, so I do not have to pass everything around.

vehicles_class.py
class Vehicle:
def __init__(self, name: str, tires: int, color: str):
self.name = name
self.tires = tires
self.color = color
def describe(self) -> str:
return f"{self.name} is {self.color} and has {self.tires} tires"
bike = Vehicle("my bike", 2, "blue")
car = Vehicle("my car", 4, "red")
print(bike.describe())
print(car.describe())
Terminal window
python3 vehicles_class.py
Terminal window
my bike is blue and has 2 tires
my car is red and has 4 tires

If you are new to this, start with a small class like this. Once it feels comfortable, add one more method.

vehicles_methods.py
class Vehicle:
def __init__(self, name: str, tires: int):
self.name = name
self.tires = tires
def is_fast(self) -> bool:
return self.tires == 2
bike = Vehicle("my bike", 2)
car = Vehicle("my car", 4)
print(bike.is_fast())
print(car.is_fast())
Terminal window
python3 vehicles_methods.py
Terminal window
True
False

The reason

I think the key reason classes help is that they keep related data and logic together. It feels like putting everything for one concept into the same box. That makes code easier to reuse and easier to read later.

Summary

In this post, I explained why using classes can make Python code easier to organize. The key point is grouping related data and methods into one object.

Final Words + More Resources

My intention with this article was to help others share my knowledge and experience. If you want to contact me, you can contact by email: Email me

Here are also the most important links from this article along with some further resources that will help you in this scope:

Oh, and if you found these resources useful, don’t forget to support me by starring the repo on GitHub!

Comments