在python中维护单独的类文件

时间:2017-10-18 04:00:31

标签: 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.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? 谢谢你的帮助。

1 个答案:

答案 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