python 动态函数调用及可变参数传入

定义类及方法

class ParameterFactory(object):
        .....
        def fullLinkTag(self, fromDate, toDate, status, cate='全部', op=''):
                .......
        .......    

在main文件中创建其实例

factory = ParameterFactory(cookie)

新建一个字典,根据业务需要传入中文名称,找到对应的函数名

funcdict = {
        "全链路状态" : factory.fullLinkTag,
        "搜索":factory.searchTag,
        "付费广告":factory.payAdvertising,
        "内容运营":factory.contentOperation,
        #"天猫营销平台":factory.,
        "销售渠道":factory.salesChannel,
        #"线下触点":factory.,
        #"istore小程序":factory.,
        "店铺商品圈人":factory.shopGoods,
        "属性圈人":factory.attributeTag,
        "会员":factory.membership,
        "现有人群": factory.currentCrowdMarketing,
    }

以下是业务代码举例,包含调用的函数中文名及该函数需要的参数列表

call_setting = {'fun_name': '全链路状态',
 'parameters': {'fromDate': 'T1加1',
  'op': '交',
  'status': '认知',
  'toDate': 'T1加1'}}

动态函数调用成功!!!

  • 关键可以通过在参数dict前面 添加 ** 两个星号**的形式实现
funcdict[call_setting['fun_name']](**parameters)
posted @ 2019-03-06 17:48  james_cai  阅读(1815)  评论(2编辑  收藏  举报