做習題的時候需要生成多個空字典,所以找到了利用迴圈建立按序列命名字典的方法。
直接執行表示式中的語句
for i in
range(3
):exec
('d{} = dict()'
.format
(i))
exec
('print(d{})'
.format
(i))
不能使用eval來替代exec,因為eval後要求的是表示式,如上exec後跟的是語句,所以用不了eval。
format和str都可以
for i in
range(3
):locals()
['d{}'
.format
(i)]
=print
(locals()
['d'
+str
(i)]
)
##setattr函式
將字典儲存在類的屬性中
classx:
pass
x = x(
)for i in
range(3
):setattr
(x,'d{}'
.format
(i),
)eval
('print(x.d{})'
.format
(i))
python裡生成動態變數和如何使用動態變數
最近在做乙個小的程式,想用sympy處理傳入的字串公式和一串變長的引數值,生成一系列的值。在給公式賦值時,碰到了乙個問題,sympy需要先定義好符號的變數。而符號的變數在寫作函式時是不清楚的,如下圖 x,y symbols x y expr x y 2 y y 2x和y均為符號變數,是由變長引數值確...
靜態變數和動態變數
首先,變數的儲存型別可分為四類 自動型別 auto 暫存器型別 register 靜態型別 static 外部型別 extern 動態變數 自動型別 auto 暫存器型別 register 靜態變數 靜態型別 static 外部型別 extern 屬於動態全域性變數,可以省略auto識別符號,因此,...
python 自動生成動態變數及應用
在這裡我們需要exec函式 exec object globals locals object 必填 表示需要執行的python globals 選填 表示全域性命名空間 字典 locals 選填 表示當前區域性命名空間 字典 example 生成10個變數 q 0 q 1 q 2 q 3 q 4 ...