动态调用模块的功能

时间:2016-11-21 12:47:23

标签: python-2.7

我在类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配置中提供的第三个指标

0 个答案:

没有答案