Функция переопределения в модуле со сложным деревом файлов - PullRequest
1 голос
/ 31 мая 2019

У меня есть модуль module, содержащий 2 функции a и b, разделенные на 2 разных файла m1.py и m2.py.

Дерево файлов модуля:

module/
    __init__.py
    m1.py
    m2.py

__init__.py содержит:

from .m1 import a
from .m2 import b

m1.py содержит:

def a():
    print('a')

m2.py содержит:

from . import a

def b():
   a()

Теперь я хочупереопределите функцию a в файле main.py, чтобы функция b использовала новую функцию a.Я попробовал следующее:

import module

module.a = lambda: print('c')
module.b()

Но это не работает, module.b() все еще печатать a.

1 Ответ

0 голосов
/ 31 мая 2019

Я нашел решение, которое заключается не в импорте с from . import a, а с import module.

m2.py становится:

import module

def b():
    module.a()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...