如何在我的代码中组织帮助函数
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 可见性,我就不会太担心。
所以我创建的 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 可见性,我就不会太担心。