Blender ignores changes to python scripts
Once a Python module has been imported, it will never be reloaded by the interpreter (that is, not automatically) when source file changes.

Blender has an operator to reload all of its py scripts, triggered by the F8 shortcut (in default keymap).

Now, that will only reload registered addons (and startup/UI scripts), if your addon contains several sub-modules you need to handle their reload yourself, using that kind of construct in your __init__.py addon’s file:

# When bpy is already in local, we know this is not the initial import...
if "bpy" in locals():
    # ...so we need to reload our submodule(s) using importlib
    import importlib
    if "my_submodule" in locals():
        importlib.reload(my_submodule)


# This is only relevant on first run, on later reloads those modules
# are already in locals() and those statements do not do anything.
import bpy
import my_submodule