我在类DoThisForThat中有一个函数get_more(),直接使用时可以像这样调用:
new = DoThisForThat(opt1=something, opt2=blah).add_more(opt3=more1, opt4=more2).add_more(opt3=more10, opt4=more11)
我正在构建一个使用.json文件并动态生成上述调用的包装器。我是python的新手,并且不确定如何实现这一目标。我看了一些选项,看起来像getattr是我最好的选择?任何帮助将不胜感激:))
编辑:
我已尝试将其设置为“动态”,其中json配置限制为一次使用2个指标。但是,如果用户有更多指标,需要为所提供的指标数量调用“.add_more()”,我不知道如何去做。如果你能指出我正确的方向,我可以尝试一下。此时我甚至不确定如何动态调用“.add_more(opt3 = ...,opt4 = ...)”。当前配置:
{"add_more":[ {"metric":"sum(impressions)", "days":"13"},
{"metric":"count(rollups)", "days":"7"},
{"metric":"avg(clicks)", "days":"2"}
]}
目前,通过我的方式,用户被迫一次提供两个配置。所以我基本上有这样的事情:
setup_call = DoThisForThat(opt1="tbl_name",
opt2="schema"
).add_more(
opt3="sum(impressions)",
opt4="13"
).add_more(
opt3="sum(impressions)",
opt4="7"
)
由于调用“add_more()”的设置不是动态的,因此忽略了上面json配置中提供的第三个指标