首頁 > 後端開發 > Python教學 > 如何動態新增屬性到Python類別?

如何動態新增屬性到Python類別?

Barbara Streisand
發布: 2024-11-14 09:17:01
原創
838 人瀏覽過

How to Dynamically Add Properties to a Python Class?

如何動態新增屬性

在Python 中,可以動態建立實例屬性,讓您可以靈活地修改類別在運行時的行為。其實作方式如下:

您嘗試的第一種方法是不正確的,因為它將 c.ab 設定為屬性物件而不是實際值。要正確新增屬性,您需要修改類別本身,而不是實例。

class C(dict):
    pass

ks = ['ab', 'cd']
vs = [100, 200]

for i, k in enumerate(ks):
    # Define the property using classmethod
    setattr(C, k, property(lambda self: vs[i]))

c = C()
print(c.ab)  # Outputs 100
登入後複製

在這個更新的程式碼中,我們將 setattr 呼叫定義為類別方法,這確保將屬性新增到類別而不是實例。屬性中的 lambda 函數從 vs 清單中傳回對應的值。

屬性也可以用來定義動態 getter 和 setter 函數,為屬性處理提供更大的彈性。請記住,屬性新增只能在類別層級完成,而不能在實例層級完成,這使其成為自訂類別行為的強大工具。

以上是如何動態新增屬性到Python類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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