从不同的目录导入函数,这些文件每个只包含一个函数
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
中管理要导出的名称。
我目前的目录结构如下:
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
中管理要导出的名称。