【问题标题】:Execute chain of functions in Python在 Python 中执行函数链
【发布时间】:2021-09-29 10:55:59
【问题描述】:

我正在使用 Python 和 Pandas 进行数据预处理。为此,我写了几个清理数据的函数,应该一个接一个地依次执行。

我不想每次打开 Jupyter 时都手动执行所有功能。所以我正在寻找类似于触发器的东西,我将在其中包含所有函数名称并通过初始化它,所有函数都将被执行。

一种方法是定义一个 Python 函数,该函数将在 body 中调用其他函数;但不确定效率如何。

我寻找了 sklearn.Pipeline()pandas.pipe() 函数,但这些函数似乎都不适合我。

有什么建议吗?

【问题讨论】:

  • “一种方法是定义一个 Python 函数,该函数将在主体内调用其他函数;但不确定效率如何。”是的,这就是要走的路

标签: python pandas jupyter-notebook data-analysis data-processing


【解决方案1】:

这可以通过将函数的引用存储在列表中来完成,但创建一个调用所有这些函数的新函数更有意义。

def fun1():
    print("function 1")
def fun2():
    print("function 2")

functions = [fun1,fun2]

for function in functions:
    function()

def fun1():
    print("function 1")
def fun2():
    print("function 2")

def begin():
    func1()
    func2()
    # any other function 

begin()

如果你想要更高级的东西,你可以使用设计模式责任链reading material

【讨论】:

    【解决方案2】:

    编写一个驱动函数 - 我们称之为start() 并在这个函数中一个接一个地调用你所有的数据清理函数。

    def start():
        data_cleaning_1()
        data_cleaning_2()
        data_cleaning_3()
        .
        .
    

    调用start()函数。

    【讨论】:

      猜你喜欢
      • 2017-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多