gpt4 book ai didi

python - 在初始化时从其他参数创建 luigi 参数

转载 作者:太空宇宙 更新时间:2023-11-04 04:42:11 25 4
gpt4 key购买 nike

我有以下问题 - 我可以使用一个参数的值来定义另一个参数吗?这是我正在尝试做的事情的例证。假设我有一个如下所示的配置文件:

[MyTaskRunner]
logdir=/tmp/logs
numruns=2

我这样定义了 MyTaskRunner:

class MyTaskRunner(luigi.Task):
logdir=luigi.Parameter(default=None)
rundate=luigi.Parameter(default=today)

其中logdir是从配置文件中获取的参数,rundate是运行时传入的参数。

现在,假设我想像这样定义一个新变量 logpath_str

       logpath_str="{}/{}".format(logdir, rundate)

是否可以将其定义为参数?

解决方案是指定默认值吗:

       logpath=luigi.Parameter(default=logpath_str)

欢迎提出任何建议。

最佳答案

在类初始化之前(在 __init__ 期间)参数值不会被解析,因此实现您正在寻找的行为的一个简单方法是实现 __init__ yourslef并在调用 super 后使用默认值初始化 logpath

class MyTaskRunner(luigi.Task):
logdir=luigi.Parameter(default=None)
logpath=luigi.Parameter(default=None)
rundate=luigi.Parameter(default=today)

def __init__(self, *args, **kwargs):
super(MyTaskRunner, self).__init__(*args, **kwargs)

if self.logpath is None:
self.logpath = "{}/{}".format(self.logdir, self.rundate)

关于python - 在初始化时从其他参数创建 luigi 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50418905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com