所以我创建的课程看起来像这样:
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
方法中,不要将它分成更小的部分。
答案 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
请注意使用下划线前缀来通知这些方法仅在内部使用(如您所述,它们仅从一个点调用)