我的問題是相當普遍的改變類派生的時候,但爲了清楚起見,我想給那就是儘可能具體的例子:我最近寫的一類,其衍生從matplotlib artist
。一個最小的工作的例子是以下幾點:屬性命名約定從可能在未來
from matplotlib import text
class TextChild(text.Text):
def __init__(self):
self._rotation = self.get_rotation()
後面使用下劃線self._rotation
當時的想法是顯示潛在用戶不能直接訪問該屬性(即把它歸類私人)。這原來是一個不好的主意,因爲text.Text
也有一個屬性_rotation
,我得到了令人驚訝的結果。
有,當然,方式來處理這個問題。
- 一種是使用不同的屬性名稱,比方說,
self._rotation2
,但 基類可能會受到在將來改變,可能 引入新的屬性,並且以位倒黴的名字也許 再配,這會破壞派生類。 - 另一種解決方案將是使用名字粉碎,即
self.__rotation
(I選擇的溶液)。從我的理解,然而 ,名字改編應作爲稀疏地,如果 我有很多私有屬性會有很多雙 代碼強調。
所以,這裏是一個問題:當從我自己的控制中派生出一個類,並且這個類可能會在將來發生變化時,有沒有一種首選私有類屬性的方法?