如何覆蓋派生類中的基類成員,以便訪問此類成員會引起調用派生成員? 考慮下面的例子? __tmp
在B
覆蓋,並應在通話的情況下返回tmp()
Python:隱藏派生類中基類的成員
class A:
__tmp = {"A" : 1,
"B" : 2}
def tmp(self):
return self.__tmp
class B(A):
__tmp = {"A" : 10,
"B" : 20}
def __init__(self):
super().__init__()
b = B()
print(b.tmp()) # Expect to print {'A': 10, 'B': 20} here
謝謝,這是行之有效的! 「混淆變量名稱」究竟是什麼意思?這個例子中的雙下劃線或只是'tmp'? – Razer
在屬性上使用兩個前導下劃線會導致名稱錯位。這在[pep-8](http://www.python.org/dev/peps/pep-0008/)(搜索「前導下劃線」)中有詳細說明。 –