在python中维护单独的类文件
我必须承认,我是python的新手。这个问题与代码组织更相关 例如,下面是app.py文件在python中维护单独的类文件,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,我必须承认,我是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.da
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
?
谢谢你的帮助。有两种方法可以做到这一点 将文件夹策略添加到
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
在每个文件夹中添加\uuuu init\uuuu.py
,然后将代码用作python包。这允许您按以下方式导入
import strategies.testStrategy.TestTracker
但是要小心。当你尝试你所拥有的东西时,会出现什么问题?@DavidZ我收到一个错误
bt。策略在类文件中不可用,这是真的。我的问题是将bt.strategy
传递到此新类文件。当所有代码都在app.py
中时,不会发生此错误?看起来我误解了您的问题。backtracker位于哪里?我真的不确定这里有什么问题。如果可以在任何地方导入backtracker
,那么也包括testStrategy.py。因此,将回溯器导入为bt
应该可以正常工作。