如何在我的代码中组织帮助功能

时间:2016-04-21 10:34:56

标签: python architecture code-organization

所以我创建的课程看起来像这样:

class DataProcessor(object):

    data1
    data2
    data3

    def process_data(self):
        self.process_data1_inOneWay()
        self.process_data2_inAnotherWay()
        self.process_data3_inADifferentWay()

处理任务由部分组成,我的问题是:定义帮助功能的适当位置。我不认为他们应该成为DataProcessor类的一部分,因为process_data是唯一使用它们的方法。我考虑过定义一个内部类,但我读到它们的使用并不是真正鼓励的。我也考虑过lambdas,但由于功能有限而拒绝了这个想法。或者也许我应该将所有代码放在process_data方法中,不要将它分成更小的部分。

2 个答案:

答案 0 :(得分:5)

我只是把它们放到课堂上并给它们一个弱的内部使用'指示符。

根据PEP8,这些方法的名称应该有一个前导下划线:_process_data1_someway()

只要很容易明白他们的角色/目标可见性只是阅读课程定义,我就不会过分担心。

答案 1 :(得分:3)

我会保持简单并将帮助者放在班级中;您的代码的读者可能希望找到它们。如下:

class DataProcessor(object):

    data1
    data2
    data3

    def process_data(self):
        self._process_data1_inOneWay()
        self._process_data2_inAnotherWay()
        self._process_data3_inADifferentWay()

    def _process_data1_inOneWay(self):
        pass

    def _process_data2_inAnotherWay(self):
        pass

    def _process_data3_inADifferentWay(self):
        pass

请注意使用下划线前缀来通知这些方法仅在内部使用(如您所述,它们仅从一个点调用)