2016-04-21 35 views
2

所以我创建的类看起来是这样的:如何组织帮助功能在我的代码

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是使用它们的唯一方法。我考虑定义一个内部类,但是我读到他们的用法并没有真正鼓励。我也考虑过lambda,但由于其功能有限,拒绝了这个想法。或者,也许我应该把所有代码放在process_data方法中,不要将它分成更小的部分。

回答

5

我只是把它们放进并给他们一个弱的“内部使用”指标。

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

只要通过阅读班级定义很容易发现他们的角色/预期的可见性,我不会过多担心这一点。

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 

请注意使用下划线前缀的通知,这些方法在内部仅用于(如你所提到的,他们只从一个点被称为)