Переменные экземпляра Python в родительском классеPython

Программы на Python
Ответить
Anonymous
 Переменные экземпляра Python в родительском классе

Сообщение Anonymous »

Я создаю родительский класс в Python, который содержит функциональные возможности, использующие переменные экземпляра.
Другие «пользователи» могут создавать дочерние классы, наследуемые от моего родительского класса. Однако я не могу полагаться на то, что эти пользователи вызовут конструктор родительского класса.
Например, предположим, что мой родительский класс был «CountingAdder», который отслеживал, сколько раз добавились два числа. И «пользователи» могут создавать определенные сумматоры, которые указывают добавляемые числа. Я хочу, чтобы дочерние классы могли рассчитывать на то, что сумматор будет выполнять подсчет без вызова конструктора родительского класса.
class CountingAdder():
def __init__(self):
self.count_times_called = 0

def a(self):
return 0

def b(self):
return 0

def a_plus_b(self):
self.count_times_called = self.count_times_called + 1
return self.a() + self.b()

class TenPlusNum(CountingAdder):
def __init__(self, secondnum):
super().__init__() # shouldn't have to do this! why can't parent class just create an instance variable
self.secondnum = secondnum

def a(self):
return 10

def b(self):
return self.secondnum

myAdder1 = TenPlusNum(4)
myAdder1.a_plus_b()

myAdder2 = TenPlusNum(3)
myAdder2.a_plus_b()


Подробнее здесь: https://stackoverflow.com/questions/793 ... rent-class
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»