globals, locals при реализации пользовательской функции include

Да, знаю, что include это моветон, но старые привычки берут своё... Имеется следующая реализация данной функции:

import runpy
def include(file):
    globals().update(runpy.run_path(file,globals()))

Что исправно работает при инклуде одного файла. Однако если в подключаемом файле подключается ещё один файл, то его переменные теряются. Очевидно, что проблема, в области видимости переменных. На данный момент использую костыль ввиде переобъявления функции в подключаемом файле. Но хотелось бы универсальную функцию, желательно но не обязательно помещённую в модуль...


Ответы (0 шт):