Как переопределить элемент базового класса в моем производном классе, чтобы обращения к этому члену вызывали вызывающий член? Рассмотрим следующий пример? __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/) (поиск «ведущего подчеркивания»). –