首頁 > 後端開發 > Python教學 > 除了使用 locals() 之外,如何在 Python 中動態設定局部變數?

除了使用 locals() 之外,如何在 Python 中動態設定局部變數?

DDD
發布: 2024-12-05 06:07:12
原創
731 人瀏覽過

How Can I Dynamically Set Local Variables in Python Beyond Using `locals()`?

動態變數設定:超越locals()

在Python 中,如果變數名稱本身是動態的,則動態設定局部變數會帶來挑戰。與流行的假設相反,對 locals() 字典的修改對於在函數內設定局部變數並不總是可靠的。

替代方法:

而不是依賴locals( ),考慮以下因素替代方案:

  • 使用字典:
    建立一個字典並將動態變數名稱指派給一個鍵。透過字典存取值。

    d = {}
    d['xyz'] = 42
    print(d['xyz'])  # Prints 42
    登入後複製
  • 使用類別屬性:
    定義一個類別並將動態變數名稱設為屬性。透過類別實例存取值。

    class C:
        pass
    
    obj = C()
    setattr(obj, 'xyz', 42)
    print(obj.xyz)  # Prints 42
    登入後複製

理解Locals() 行為:

雖然locals() 可能在函數內部工作,因為對於編譯器優化,需要需要注意的是直接修改locals() 可能會導致意外結果。對傳回字典的賦值是短暫的,將在下一次 locals() 呼叫時被覆寫。

IronPython 細節:

在 IronPython 中,locals() 的行為有所不同。以不同名稱呼叫 locals() 會綁定到該名稱所綁定範圍的局部變數。但是,無法透過此綁定名稱存取函數局部變數。

以上是除了使用 locals() 之外,如何在 Python 中動態設定局部變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板