It is a position/location change too. The change will be performed by the controller rather than an actuator. It runs exactly one time. Which means the Python controller needs to be triggered every time the change should be performed.
When you use an actuator the actuator will run until you deactivate it. (BTW. your code in post#1did not deactivate the actuator when no key was pressed = positional change never stopps. )
exactly for that is extraredundant use motion actuator .
you need to activate, set, deactivate , a bounch of code redundant .
using applyMovement() not there any “activation” or “deactivation” , simple you want move -> move .
otherwise implicitely mean do nothing (not need other line to deactivate anything)
indeed this has sense for bricks (since is managed internally without give annoyng),
i mean has any sense for python .
as result using using motion actuator from python(python as filòter toxic) need triple code that need instead with applyMovement