寫壹個程序,讓linuxany1=1,linuxany2=2,… inuxany100=100,妳會怎麽做?
Eval是最容易想到的,但其實不需要這麽危險的東西,因為Python的變量名只是壹個字典的鍵。要獲得這個字典,只需直接使用locals和globals函數。
& gt& gt& gtnames = locals()
& gt& gt& gt對於xrange(1,101)中的I:
...names['linuxany%s' % i] = i
...& gt& gt& gtlinuxany1
1 & gt;& gt& gtlinuxany2
2 & gt& gt& gtlinuxany100
100
但是妳可能會說這個例子沒用,畢竟用數組來實現更實用。
比如服務器使用對象數據庫,可以直接將對象保存到數據庫中。服務器列出了當前支持的所有類,用戶希望添加壹個列表中不存在的類,於是他向服務器發送壹段JSON或XML文本。服務器解析這個文本,將其轉換成壹個類對象,並設置類名。然後用戶就可以隨意生成這個類的對象了。
關鍵是這個數據庫和類名有關。妳不能用壹個通用的對象類來保存所有的對象,否則查詢會很混亂。
除了動態設置變量名,動態刪除也是可能的,例如
del locals()['linuxany1']
同樣,delattr也是可用的。
希望能幫到妳。