python動(dòng)態(tài)生成函數(shù) python動(dòng)態(tài)編程

python里面 如何動(dòng)態(tài)調(diào)用 一個(gè)函數(shù)

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

察哈爾右翼前ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

function=eval(function)

function(player_id,test_url)

function是個(gè)字符串,function(player_id,test_url) 這樣寫肯定不是字符串,怎么能用eval呢,直接eval function返回函數(shù)名,然后調(diào)用函數(shù)

python 怎么生成可變函數(shù)名

定義一個(gè)A類,然后實(shí)例化一個(gè)A對(duì)象,通過setattr函數(shù)來給當(dāng)前類添加一個(gè)變量,值是test函數(shù)。調(diào)用haha函數(shù),就相當(dāng)于調(diào)用了test函數(shù)。 例2,定義一個(gè)模塊,通過另一個(gè)模塊函數(shù)調(diào)用函數(shù)來增加變量,值是test2函數(shù)。調(diào)用haha函數(shù),就相當(dāng)于調(diào)用了test2函數(shù)。

原理

python系統(tǒng)會(huì)維護(hù)一個(gè)變量的字典,可以通過locals()或者globals()獲取到該字典。由于字典是可變對(duì)象,那么,就可以動(dòng)態(tài)的增加變量。由于函數(shù)也是一個(gè)對(duì)象,那么就可以將變量指向函數(shù)。這樣就可以達(dá)到動(dòng)態(tài)修改函數(shù)名的目的了。

如何用python動(dòng)態(tài)生成變量名字

你好,方法如下:

要寫一個(gè)程序,讓linuxany1=1,linuxany2=2,… inuxany100=100,你會(huì)怎么做?

最容易想到的自然是eval,但是實(shí)際上根本不需要這種危險(xiǎn)的東西,因?yàn)镻ython的變量名就是一個(gè)字典的key而已。要獲取這個(gè)字典,直接用locals和globals函數(shù)即可。

names = locals()

for i in xrange(1, 101):

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

... linuxany1

1 linuxany2

2 linuxany100

100

不過你也許會(huì)說這個(gè)例子沒什么用,畢竟用數(shù)組來實(shí)現(xiàn)更為實(shí)用。

舉一個(gè)例子:服務(wù)器使用一種對(duì)象數(shù)據(jù)庫,可以直接保存對(duì)象到數(shù)據(jù)庫中。服務(wù)器列出目前支持的所有類,而用戶想添加一個(gè)不存在于列表中的類,于是向服務(wù)器發(fā)送一段JSON或XML文本。服務(wù)器解析這段文本,將它轉(zhuǎn)換成一個(gè)class對(duì)象,并且設(shè)置類名。之后用戶就可以隨意生成這個(gè)類的對(duì)象。

關(guān)鍵是這個(gè)數(shù)據(jù)庫和類名相關(guān),你不能用一個(gè)通用的Object類來保存所有的對(duì)象,否則查詢時(shí)就亂套了。

除了動(dòng)態(tài)設(shè)置變量名,動(dòng)態(tài)刪除也是可以的,例如

del locals()['linuxany1']

同樣,delattr也是可用的。

希望能幫到你。

當(dāng)前題目:python動(dòng)態(tài)生成函數(shù) python動(dòng)態(tài)編程
鏈接地址:http://muchs.cn/article26/hphsjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、商城網(wǎng)站靜態(tài)網(wǎng)站、定制網(wǎng)站移動(dòng)網(wǎng)站建設(shè)、搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)