BGE - Calculate Acceleration from Velocity
"I need to know how to make it work correctly."

that will take some work on your script.

First off, there are many problems with your script. The most obvious being a syntax error. you should have another ) after Vector((0, 0, 0). Second, you do not define own or ob. But the worst error, is you can not define a vector on a game property. There is no property type called vector



The five property types are Boolean, Integer, Float, String, and Timer. If you try to assign a vector to a game property, the only one that would come close to working is the String property, and that wouldn't do much in the realm of usefulness.

I would not actually use the method you are trying to use. I would calculate Acceleration like this:

import bge
from mathutils import Vector

controller = bge.logic.getCurrentController()
obj = controller.owner

previous_velocity = Vector(obj.worldLinearVelocity)

def main():
    global previous_velocity

    current_velocity = Vector(obj.worldLinearVelocity)

    acceleration = (current_velocity - previous_velocity) * bge.logic.getAverageFrameRate()
    print(acceleration)

    previous_velocity = current_velocity


Also, you must reference this bit of python by calling it from a module controller, not a script controller.