So far, we have been coding in a procedural style. This is a quick scripting method we can do in Python. When our code gets larger and larger, we need to advance to coding in OOP.
Why?
Because, among many other benefits, OOP allows us to move code around by using methods. Once we use classes, we no longer have to physically place the code above the code that calls it. This gives us great flexibility in organizing our code. We can write the related code next to the other code and no longer have to worry that the code will not run because the code does not sit above the code that calls it. We can take that to some rather fancy extremes by coding up modules that refer to methods that are not being created within that module. They rely on the runtime state having created those methods during the time the code runs.