Python 中的動態變數賦值
在Python 中,透過直接修改locals() 字典來動態設定局部變數並不是一個可行的解決方案。與普遍看法相反,任何此類修改都不會在函數範圍內持續存在。
替代方法
要動態設定局部變量,請考慮使用下列任一方法:
字典
建立一個字典並動態分配鍵值對:
物件屬性
物件屬性使用物件並動態設定屬性:
編輯存取非函數命名空間中的變數(模組、類別定義、實例)通常涉及字典查找。然而,函數局部變數透過預先編譯編譯器已知的變數名稱來最佳化速度。
在 Python 的 C 實作中,在函數內呼叫 locals() 會建立一個用目前局部變數值初始化的字典。該字典隨著局部變數的變更而更新,並在後續呼叫 locals() 時傳回。 在 IronPython 中,呼叫 locals() 的函數使用字典作為其局部變數儲存。局部變數的賦值會改變字典,反之亦然。但是,在 IronPython 中將不同的名稱綁定到局部函數可以存取綁定範圍的局部變量,而不是函數的局部變數。
警告重要的是要注意分配給 locals() 傳回的字典可能會產生不可預測的結果。強烈建議不要依賴這些作業。以上是如何在Python中動態分配局部變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!