Skip to main content
 首页 » 编程设计

python之在实例化时自动调用 Python 类方法的最佳方法

2025年05月04日15jiqing9006

我有一个机器学习算法,它涉及一系列步骤,例如清理数据、准备训练数据等。每个步骤都存储在 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() 

请您参考如下方法:

如果您的目标是让对象“在类实例化时自动执行”,只需将 self.run() 放在 init 中:

def __init__(self): 
    self.bar = 1 
    self.run() 

顺便说一句,应该尽量保持 __init__ 方法的轻量级,只用它来实例化对象。虽然“笨拙”,但您的原始 Kaggle 类是我设计它的方式(即实例化对象,然后有一个单独的 run 方法来运行您的管道)。我可能会将 run 重命名为 run_pipeline 以提高可读性,但其他一切对我来说都不错。