#python #oop #inheritance #overriding
Вопрос:
Моя цель: Расширить класс RegionalBank, добавив метод regional_total, который возвращает общую сумму денег, хранящихся во всех банках региона.
Моя проблема: Как я могу поместить каждое значение 2D-списка в параметр экземпляра RegionalBank?
# Do not alter this code import sys strings = [l.split(",") for l in sys.argv[1].split("*")] accounts = [[int(n) for n in s] for s in strings] class Bank: def __init__(self, name, customers, accounts): self.name = name self.customers = customers self.accounts = accounts def branch_total(self, accounts): total = 0 for account in accounts: total = account return total # Write your code here accounts = [ [10000, 13000, 22000], [30000, 7000, 19000], [15000, 23000, 31000] ] class RegionalBank(Bank): def __init__(self, name, customers, accounts): super().__init__(name, customers, accounts) def regional_total(self, accounts): return super().branch_total(accounts) for row,col in accounts: print( accounts[rows][col] ) RBank1 = RegionalBank("Regional Bank A", 132, accounts) RBank1.regional_total(accounts)
Ответ №1:
Замените свою функцию regional_total на эту:
def regional_total(self): total = 0 for region in self.accounts: for account in region: total = account return total
В конце назовите это так:
RBank1 = RegionalBank("Regional Bank A", 132, accounts) print(RBank1.regional_total())
Пояснение: Свойство счетов (обычно вы называете переменные свойства класса, в то время как параметры являются входными данными для функций или конструкторов классов) класса Банка представляет собой список 1D, но свойство счетов класса RegionalBank представляет собой список 2D (хотя они называются одинаково), потому что вы просто сохраняете счета независимо от их размера.