Импорт функций из другого каталога, в котором эти файлы содержат только одну функцию - PullRequest
0 голосов
/ 24 апреля 2020

В настоящее время у меня есть структура каталогов, например:

project/
  indicators/
    __init.py__ (contains __all__ = ['ATR', 'MACD'])
    ATR.py
    MACD.py
  strategies/
    strategy.py

в ATR.py и MACD.py. У меня есть такая функция:

def ATR(dataframe, period):
  # do math

. :

from indicators.ATR import ATR

ATR(dataframe, period)

или

from indicators import *

ATR.ATR(dataframe, period)

, но я хотел бы сделать что-то вроде

from indicators import ATR, MACD

ATR(dataframe, period)
MACD(dataframe, period)

Как правильно настроить эту структуру? Я думаю, мне нужен способ указать какой-то экспорт «по умолчанию» в каждом из индикаторов /.

1 Ответ

1 голос
/ 24 апреля 2020

В добавлении __init__.py перед списком __all__:

from ATR import ATR
from MACD import MACD

Это повлияет на другие операции импорта, которые вам не нравятся, но я думаю, вы сможете увидеть, что вы можете управлять тем, что именно имя вы экспортируете, по своему вкусу, внутри __init__.py.

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