2016-04-21 36 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 

請注意使用下劃線前綴的通知,這些方法在內部僅用於(如你所提到的,他們只從一個點被稱爲)