Вам необходимо определить self._coins
поле в Coins
классе.Без этого функция make_change
не может быть выполнена, поскольку она вызывает поле, которое не существует в этом родительском классе (for coin in (self._coins)
).
Отредактировано: для достижения цели вам нужно создать поле внутри Coins
класса:
class Coins(object):
def __init__self():
self._coins = []
def make_change(self, amount):
change = []
for coin in (self._coins):
change.append(amount // coin)
amount = amount - change[-1] * coin
class US_Coins(Coins):
def __init__(self):
self._coins = [50, 25, 10, 5, 1]
class Metric_Coins(Coins):
def __init__(self):
self._coins = [50, 20, 10, 5, 2, 1]
metric = Metric_Coins()
us = US_Coins()
print(us.make_change(73))
print(metric.make_change(73))
coins = Coins()
print(coins.make_change(27))
Теперь вы можете работать с методом make_change
в США иметрика;а также на объекте монеты.