Вы должны выполнить вещи в новый словарь местных жителей.Вы можете получить доступ к файлам, которые вы упомянули как файлы, а не как модули, а затем вставить их в тип модуля.
from types import ModuleType
with open("A/M.py") as a:
A = ModuleType('A')
exec a.read() in A.__dict__
with open("B/M.py") as b:
B = ModuleType('B')
exec b.read() in B.__dict__
with open("C/M.py") as c:
C = ModuleType('C')
exec c.read() in C.__dict__
Затем обращайтесь к ним, как BF (), как вы хотели.Единственная проблема заключается в том, что метаданные модуля настроены неправильно, поэтому они будут отображаться как встроенные.Даже тогда вы можете:
import sys
sys.modules['A'] = A
sys.modules['B'] = B
sys.modules['C'] = C
, и они будут импортированы, как import A
из других частей вашего приложения.