我必须承认我是python的新手。这个问题与代码组织有关。
例如,这是app.py文件
import backtracker as bt
# Create a class
class TestTracker(bt.Strategy):
def log(self, txt, dt=None):
''' Logging function for this strategy '''
dt = dt or self.datas[0].datetime.date(0)
print('%s, %s' % (dt.isoformat(), txt))
def __init__(self):
self.dataclose = self.datas[0].close
self.datapoint = self.datas[0]
def next(self):
self.log('Close, %2f' %self.dataclose[0])
现在,我想将类文件分离到testStrategy.py并将其导入app.py.文件夹结构看起来像这样
|
|-strategies
| |-testStrategy.py
|-app.py
如何在新的类文件中引用基类bt.strategy
?
谢谢你的帮助。
答案 0 :(得分:0)
有两种方法可以解决这个问题。
将文件夹策略添加到sys.path
,然后导入您的课程。
# This gives you the folder in which current file resides
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
if BASE_DIR + '/strategies' not in sys.path:
sys.path.append(BASE_DIR + '/strategies')
from testStrategy import TestTracker
在每个文件夹中添加__init__.py
,然后将您的代码用作python包。这允许您以下列方式导入。
import strategies.testStrategy.TestTracker
但要警惕trap。