如何在我的代码中组织帮助函数

How to organise helping functions in my code

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

class DataProcessor(object):

    data1
    data2
    data3

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

处理任务由多个部分组成,我的问题是:定义这些帮助函数的正确位置是什么。我觉得它们不应该是 DataProcessor class 的一部分,因为 process_data 是唯一使用它们的方法。我考虑过定义一个内部 class,但我读到它们的使用并不真正受到鼓励。我也考虑过 lambda,但由于功能有限而拒绝了这个想法。或者,也许我应该将所有代码放在 process_data 方法中,不要将其拆分成更小的部分。

我会保持简单并将助手放在 class;您的代码中的 reader 很可能会在其中找到它们。如下:

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

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

我只是将它们放入 class 并给它们一个较弱的 'internal use' 指标。

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

只要阅读 class 定义就可以很容易地看出他们的 role/intended 可见性,我就不会太担心。