在luigi中,功能require和@requires标记有什么区别?

问题描述

指定任务时,某些任务会像这样

class aclass(luigi.Task):
    def requres(self):
        return [anotherTask]

其他人来

@requires(anotherTask)
class aclass(luigi.Task):
    ....something

有什么区别,为什么一个要比另一个使用?

解决方法

在定义def requires(self):时,您需要返回任务实例列表,并为其传递参数。如果您有很多任务具有相同的参数,则意味着很多样板。

使用装饰器@requires,您不必重新定义参数,也不必传递参数,luigi会为您完成。

请参见https://luigi.readthedocs.io/en/stable/api/luigi.util.html