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)
python 动态函数调用及可变参数传入的更多相关文章
- Python函数的定义、参数传入与函数的调用
作为计算机代码的一种抽象方式,函数在Python中扮演了极为重要的角色.今天给大家介绍Python函数的定义.参数的传入以及调用方式.其中函数参数的传入方式为本节重点内容.Python函数的参数形式包 ...
- Python函数中的可变参数
在Python函数中,还可以定义可变参数. 如:给定一组数字a,b,c……,请计算a2 + b2 + c2 + ……. 要定义出这个函数,我们必须确定输入的参数.由于参数个数不确定,我们首先想到可以把 ...
- 编程语言基础:用“收集器”理解各种语言(C++、Java、Python)中的可变参数!
[C++通常用一种特殊的List收集可变形参,而Java通常用一个数组,Python收集为tuple.dict.] 1.Java中的可变参数的函数:void f(ClassName... object ...
- [Python学习笔记-004] 可变参数*args和**kwargs
在Python中,可变参数的传递使用*args和**kwargs来实现,其中: *args表示任意个位置参数(positional argument),被表示为一个只读的数组(tuple): **kw ...
- Python的函数名作为参数传入调用以及map、reduce、filter
零.python的lambda函数: #lambda function func = lambda x : x+1 #这里是一个匿名函数,x是参数,x+1是对参数的操作 func(1)= 2 多个参数 ...
- [Python] 动态函数调用(通过函数名)
2018-04-09 update 利用python中的内置函数 eval() ,函数说明: def eval(*args, **kwargs): # real signature unknown & ...
- python学习笔记 可变参数关键字参数**kw相关学习
在Python中可以定义可变参数,顾名思义,可变参数就是传入参数是可变的.可以是任意个,以一个简单的数学编程为例,计算 sum = a * a + b * b + .....z * z 函数定义可以如 ...
- Python python 函数参数:可变参数
# 可变参数 '''传入的参数数量是不确定的 ''' '''若是要计算几个数(未知)的平方和 ''' def cal(nums): sum = 0 for num in nums: sum = sum ...
- Python3 系列之 可变参数和关键字参数
刚开始接触 python 的时候,对 python 中的 *wargs (可变参数) 和 **kwargs (关键字参数)的理解不是很透彻,看了一下 <Explore Python>一书, ...
随机推荐
- 【洛谷P4342】[IOI1998]Polygon
Polygon 比较裸的环形DP(也可以说是区间DP) 将环拆成链,复制到后面,做区间DP即可 #include<iostream> #include<cstdio> usin ...
- java常见验证邮箱、电话号码、日期等格式
package besttone.utils; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 90%的验证 ...
- Extjs 4.2 panel 添加 click 事件及右键菜单
listeners: { render: function(c) { c.body.on('click', function() { //TODO 添加点击事件功能 }); c.body.on('co ...
- Python常用模块之time和datetime
1.时间的格式化 结构化时间 ##把字符串时间转换成结构化时间 time.strptime("2017-06-21","%Y-%m-%d") ##把结构化时间转 ...
- Object C学习笔记24-关键字总结(转)
学习Object C也有段时间了,学习的过程中涉及到了很多Object C中的关键字,本文总结一下所涉及到的关键字以及基本语法. 1. #import #import <> 从syste ...
- 混合应用开发:Phonegap VS AppCan
混合应用开发:Phonegap VS AppCan 简介 Phonegap PhoneGap是一个用基于HTML,CSS和JavaScript的,创建移动跨平台移动应用程序的快速开发平台.它使开发者能 ...
- python中and,or
在很多逻辑语句中,常常会出现and,or这两个逻辑运算符. 下面直接上代码 print(0 or None) #None ''' or比较运算符: 当or旁两边都是真的话,那么会取第一个值 当or两边 ...
- 一个好用的C# HttpHelper类
/// <summary> /// 类说明:HttpHelper类,用来实现Http访问,Post或者Get方式的,直接访问,带Cookie的,带证书的等方式,可以设置代理 /// 重要提 ...
- php接口编程
1:自定义接口编程 对于自定义接口最关键就是写接口文档,在接口文档中规定具体的请求地址以及方式,还有具体的参数信息 2:接口文档编写 请求地址 http://jxshop.com/Api/login ...
- centOS下yum报错
CentOS下yum报错 备注:当我们在CentOS下使用yum命令的时候,会报一些错误,一下是我总结的几个解决问题的方法.(保证自己的服务器可以上网) 一.关于Loaded plugins: fas ...