Заменить импорт пакетов в модуле - PullRequest
0 голосов
/ 17 мая 2018

Я использую модуль, который импортирует функцию как импорт пакета, используя относительную нотацию точек импорта:

from .utils import target_func

class ClassINeed:

    def function_i_call(self):
        return target_func()

Я хочу импортировать ClassINeed с from classineed import ClassINeed, но заменить target_func собственной функцией. Проблема в том, что target_func не является частью класса, который я импортирую. Поэтому я не вижу способа получить к нему доступ. Каков был бы способ сделать это?

1 Ответ

0 голосов
/ 17 мая 2018

Кроме from classineed import ClassINeed, также выполните import classineed, затем переопределите target_func при необходимости, например, через classineed.target_func = lambda : 'hello!'.

PS Обращение к классу ClassINeed с classineed.ClassINeed можетбудь чище, если у тебя уже есть import classineed.

...