Я работаю над проектом о наследовании и банковских счетах, в котором я определяю родительский и дочерний класс (соответственно Account и Checking_Account).
Checking_Account содержит словарь stati c, который отображает строки в функции называется "варианты". Некоторые функции определены в дочернем классе Checking_Account, некоторые определены в родительском классе Account.
Например,
options = {"See Number of Remaining Checks" : _remainingChecks,
"View Balance" : super()._viewBalance}
Однако это возвращает ошибку
Traceback (most recent call last):
File "/Users/dawsonren/Documents/ASWDV/Python/Accounting/account_SO.py", line 24, in <module>
class Checking_Account(Account):
File "/Users/dawsonren/Documents/ASWDV/Python/Accounting/account_SO.py", line 33, in Checking_Account
"View Balance" : super()._viewBalance()}
RuntimeError: super(): no arguments
Вот минимальный воспроизводимый пример.
class Account(object):
def __init__(self, name, bal):
"""(str, float) => Account object
Instantiates the Account object.
"""
self.name = name
self.balance = bal
def viewBalance(self):
print(f"Account has ${self.balance}.")
def run(self, options):
"""{str : function} => None
Runs the function based on the input of the user.
"""
for key in options.keys():
print(key)
select = input("Type the option you want.")
options[select]()
class Checking_Account(Account):
def __init__(self, name, bal, checks = 100):
super().__init__(name, bal)
self.checks = checks
def remainingChecks(self):
print(f"Account {self.num} has {self.checks} checks.")
options = {"See Number of Remaining Checks" : remainingChecks,
"View Balance" : super().viewBalance}
def run(self):
super().run(Checking_Account.options)
Это мой первый пост здесь, как старшеклассник, поэтому я мог бы использовать любую помощь, которую смогу получить. Если то, что я делаю, не является лучшей практикой, пожалуйста, укажите мне правильный способ сделать это!