LINUX.ORG.RU

История изменений

Исправление pawnhearts, (текущая версия) :

import sys, types
def reload_all():
    for k, v in globals().items():
        if type(v) == types.FunctionType and v.__module__ != "__main__":
            reload(sys.modules[v.__module__])
            globals()[k] = getattr(sys.modules[v.__module__], v.func_name)

или так

import sys, types, importlib
def reload_all():
    for k, v in globals().items():
        if type(v) == types.FunctionType and v.__module__ != "__main__":
            globals()[k] = getattr(importlib.import_module(v.__module__), v.func_name)

Вроде работает, но это только для функций импортированных таким образом(и глобально). Для классов и самих модулей допилишь сам, если надо.

Исправление pawnhearts, :

import sys, types
def reload_all():
    for k, v in globals().items():
        if type(v) == types.FunctionType and v.__module__ != "__main__":
            reload(sys.modules[v.__module__])
            globals()[k] = getattr(sys.modules[v.__module__], v.func_name)

или так

import sys, types, importlib
def reload_all():
    for k, v in globals().items():
        if type(v) == types.FunctionType and v.__module__ != "__main__":
            globals()[k] = getattr(importlib.import_module(v.__module__), v.func_name)

Вроде работает, но это только для функций импортированных таким образом. Для классов и самих модулей допилишь сам, если надо.

Исходная версия pawnhearts, :

import sys, types
def reload_all():
    for k, v in globals().items():
        if type(v) == types.FunctionType and v.__module__ != "__main__":
            reload(sys.modules[v.__module__])
            globals()[k] = getattr(sys.modules[v.__module__], v.func_name)

Вроде работает, но это только для функций импортированных таким образом. Для классов и самих модулей допилишь сам, если надо.