# This is not exactly the code, just a simplified version for explanation-purposes
def Vector.multiply(vec, num):
copy = vec.copy()
copy.multiply(num)
return copy
As you see the code calls vec.copy() without checking if vec is actually a vector. Now what happens if we substitute the arguments with your values:
You see the problem? 3 is a number, you can not call a method from it. That is why order of arguments is extremely important. You cannot simply switch those around. Computers can be extremely smart yet incredibly stupid. Modern computers will happily steer a rocket to space for you… as long as you as programmer don’t switch arguments around.
Luckily we have smart programs that can check that before we actually launch the rocket. We only have to hope that the programmers of these programs didn’t make any error…