訪問對象我正在寫,其中每個變量由一個值和一個描述組成的「envirorment」時:返回默認成員在python
class my_var:
def __init__(self, value, description):
self.value = value
self.description = description
變量被創建並把辭典內:
my_dict["foo"] = my_var(0.5, "A foo var")
這很酷,但有99%的變量操作是與「值」成員。所以,我必須這樣寫:
print my_dict["foo"].value + 15 # Prints 15.5
或
my_dict["foo"].value = 17
我想,關於對象my_dict所有操作[「富」]可能默認爲「價值」的成員。換句話說,我想寫:
print my_dict["foo"] + 15 # Prints 5.5
和類似的東西。
我發現的唯一方法是重新實現全部下劃線成員(eq,add,str等),但我覺得這是錯誤的方式。有一種我可以使用的神奇方法嗎?
一種解決方法是將有更多的字典,像這樣:
my_dict_value["foo"] = 0.5
my_dict_description["foo"] = "A foo var"
,但我不喜歡這樣的解決方案。你有什麼建議嗎?