我有一個機器學習算法,它涉及一系列步驟,例如清理數據,準備訓練數據等。每個步驟都存儲在python類的單獨方法中。我想知道構建我的類的最佳實踐方式是如何在類實例化時自動執行這些步驟。實例化時自動調用Python類方法的最佳方式
這是我所做的(代碼是說明性的,但這種方法適用於真正的算法)。它感覺有點笨重。有沒有更優雅的方式?
class Kaggle():
"""
An algorithm
"""
def __init__(self):
self.bar = 1
def step_one(self, some_text_data):
self.bar = 1 ** 2
# Do some data cleaning
# return processed data
def step_two(self):
foo = step_one(baz)
# do some more processing
def step_three(self):
bar = step_two()
# output results
def run(self):
self.step_one()
self.step_two()
self.step_three()
if __name__ == "__main__":
kaggle = Kaggle()
kaggle.run()
把他們都在'__init__'方法 –
你代碼看起來相當乾淨,不言自明。易於閱讀,非常清晰。它有什麼「笨拙的」? –
@EwanMellor必須手動調用'run()'方法。 –