很多時候我的類有幾個屬性,而其他對象的屬性依賴於這些屬性。什麼是定義和訪問這些的最佳方式? 一個簡單的例子應該解釋我在問什麼。鏈接到他人的對象屬性:如何保持一致性?
說我有一個類,定義了一個圈:
class Circle:
def __init__(self, r):
self.r = r
現在這個圈子裏被實例化正是基於半徑,但我可能希望能夠訪問它的直徑,這些都是可能性我見:
A)創建一個新的屬性實例
class Circle:
def __init__(self, r):
self.r = r
self.d = 2*r
B時的)定義返回的直徑的函數
class Circle:
def __init__(self, r):
self.r = r
def d(self):
d = 2*r
return d
解決方案A不保證一致性,如果用戶更改r,d不會自動更新,並且可能很難追蹤到該錯誤。解決方案B要求用戶調用函數而不是訪問屬性。每次必須訪問屬性d時,都必須重新計算屬性d,並且通常可能會耗費大量時間。
是否有解決方案C確保一致性,並且不需要類用戶在每次訪問時重新計算屬性?
我在問自己同樣的問題,但我對所給的迴應並不滿意。我認爲必須有一個更加優雅的方法來解決這個問題...... – MonkeyButter