重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

python动态生成函数 python动态编程

python里面 如何动态调用 一个函数

function="luckywin."+case_name+"."+def_name

察哈尔右翼前ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!

function=eval(function)

function(player_id,test_url)

function是个字符串,function(player_id,test_url) 这样写肯定不是字符串,怎么能用eval呢,直接eval function返回函数名,然后调用函数

python 怎么生成可变函数名

定义一个A类,然后实例化一个A对象,通过setattr函数来给当前类添加一个变量,值是test函数。调用haha函数,就相当于调用了test函数。 例2,定义一个模块,通过另一个模块函数调用函数来增加变量,值是test2函数。调用haha函数,就相当于调用了test2函数。

原理

python系统会维护一个变量的字典,可以通过locals()或者globals()获取到该字典。由于字典是可变对象,那么,就可以动态的增加变量。由于函数也是一个对象,那么就可以将变量指向函数。这样就可以达到动态修改函数名的目的了。

如何用python动态生成变量名字

你好,方法如下:

要写一个程序,让linuxany1=1,linuxany2=2,… inuxany100=100,你会怎么做?

最容易想到的自然是eval,但是实际上根本不需要这种危险的东西,因为Python的变量名就是一个字典的key而已。要获取这个字典,直接用locals和globals函数即可。

names = locals()

for i in xrange(1, 101):

... names['linuxany%s' % i] = i

... linuxany1

1 linuxany2

2 linuxany100

100

不过你也许会说这个例子没什么用,毕竟用数组来实现更为实用。

举一个例子:服务器使用一种对象数据库,可以直接保存对象到数据库中。服务器列出目前支持的所有类,而用户想添加一个不存在于列表中的类,于是向服务器发送一段JSON或XML文本。服务器解析这段文本,将它转换成一个class对象,并且设置类名。之后用户就可以随意生成这个类的对象。

关键是这个数据库和类名相关,你不能用一个通用的Object类来保存所有的对象,否则查询时就乱套了。

除了动态设置变量名,动态删除也是可以的,例如

del locals()['linuxany1']

同样,delattr也是可用的。

希望能帮到你。


当前标题:python动态生成函数 python动态编程
文章链接:http://cqcxhl.cn/article/hphsjg.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP