如何从 nodes.py 文件中的 Class 执行 运行 函数?
How to run functions from a Class in the nodes.py file?
我想在 nodes.py 文件中按 Classes 组织节点函数。例如清洗数据相关的函数在"CleanData"Class中,带有@staticmethod装饰器,而其他函数将留在"Other"Class中,没有任何装饰器(这些 类 的名称仅具有代表性)。在管道文件中,我尝试导入 类 的名称、节点的名称以及以下方式:CleanData.function1(出现错误)和其中的 none 有效。如果可能的话,如何从 类 调用节点?
我不完全确定你得到的错误是什么。如果你真的想做 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,
)
]
)
应该可以。
我想在 nodes.py 文件中按 Classes 组织节点函数。例如清洗数据相关的函数在"CleanData"Class中,带有@staticmethod装饰器,而其他函数将留在"Other"Class中,没有任何装饰器(这些 类 的名称仅具有代表性)。在管道文件中,我尝试导入 类 的名称、节点的名称以及以下方式:CleanData.function1(出现错误)和其中的 none 有效。如果可能的话,如何从 类 调用节点?
我不完全确定你得到的错误是什么。如果你真的想做 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,
)
]
)
应该可以。