目的:實現根據傳入的參數,如 n=6,動態的生成6個變量名,可以在後續程序中調用使用
Python 動態定義變量名
1、利用命名空間
- 利用命名空間動態賦值
在Python
的命名空間中,將變量名與值存儲在字典中,
可以通過locals()
,globals()
函數分別獲取局部命名空間和全局命名空間。
示例:
names = locals()
listTemp =
for i in range(6):
names['x%s' % i] = i # 方法1
#names['a'+ str(i)] = i # 方法2
print(x0,x1,x2,x3,x4,x5) # 此時,xi = i
輸出:
0 1 2 3 4 5
2、動態變量名賦值
- 動態變量名賦值
在使用時需要動態生成變量,如動態生成var0...var5
變量
使用exec
動態賦值
exec
在python3
中是內置函數,它支持python
代碼的動態執行。
示例:
for i in range(6):
exec('var{} = {}'.format(i, i))
print(var0, var1, var2, var3 ,var4 ,var5)
輸出:
0 1 2 3 4 5
3、類中使用動態變量
- 在類中使用動態變量賦值
python
的類對象的屬性儲存在的__dict__
中。dict
是一個詞典,鍵爲屬性名,值對應屬性的值。
示例:
class Test_class(object):
def __init__(self):
names = self.__dict__
for i in range(6):
names['n' + str(i)] = i
#names['x%s' % i] = i
t = Test_class()
print(t.n0, t.n1, t.n2, t.n3, t.n4, t.n5)
輸出:
0 1 2 3 4 5