將字典鍵作為屬性存取:陷阱和解決方法
使用點表示法(例如obj.foo)存取字典鍵很方便,但它不是Python 中的預設功能。雖然您可以建立像 AttributeDict 這樣的子類別來實現此目的,但它有一些注意事項。
注意事項與陷阱:
使用資料類別的替代解決方案:
從Python 3.7 開始,資料類別提供了將屬性與字典關聯起來的更強大和推薦的方法。以下是使用資料類別的範例:
from dataclasses import dataclass @dataclass class MyData: foo: str bar: int data = MyData("Hello", 10) print(data.foo) # Output: "Hello"
AttributeDict 的工作原理:
透過將內部dict 屬性設定為AttrDict 的實例,它會用類似字典的內容覆蓋預設的dict 行為。這表示屬性存取(例如 obj.foo)會擷取儲存在 dict 鍵「foo」中的值。
結論:
雖然創建像 AttributeDict 這樣的子類可以提供對字典鍵作為屬性的訪問,但了解其註意事項很重要。資料類別提供了一種更現代、更安全的替代方案,用於將屬性與 Python 中的字典關聯起來。
以上是如何在 Python 中安全地存取字典鍵作為屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!