从不同的目录导入函数,这些文件每个只包含一个函数

Import functions from a different directory where those files only contain that one function each

我目前的目录结构如下:

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

从strategy.py我能做到:

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)

设置此结构的正确方法是什么?我想我需要一种方法来在每个指标中指定某种 "default" 导出 /.

__init__.py 中,在您的 __all__ 列表之前添加:

from ATR import ATR
from MACD import MACD

这会影响您不喜欢的其他导入,但我想您将能够看到,您可以根据自己的喜好在 __init__.py 中管理要导出的名称。