如何从nodes.py文件中的类运行函数?

时间:2019-11-08 10:29:45

标签: python python-3.x class pipeline kedro

我想按nodes.py文件中的类组织节点功能。例如,与清洁数据相关的函数在带有@staticmethod装饰器的“ CleanData”类中,而其他函数将在“ Other”类中保留,而没有任何装饰器(这些类的名称仅是代表性的)。在管道文件中,我尝试导入类的名称,节点的名称以及以下方式:CleanData.function1(产生错误),但它们均无效。请问如何从类中调用节点?

1 个答案:

答案 0 :(得分:1)

我不确定您得到的错误是什么。如果您实际上是想做from .nodes import CleanData.function1,那是行不通的。导入在Python中不像那样工作。如果您这样做:

nodes.py具有:

class CleanData:
    def clean(arg1):
        pass

pipeline.py具有:

from kedro.pipeline import Pipeline, node
from .nodes import CleanData

def create_pipeline(**kwargs):
    return Pipeline(
        [
            node(
                CleanData.clean,
                "example_iris_data",
                None,
            )
        ]
    )

应该起作用。