Bei folgendem code kann ich ein Objekt das ich für die Klasse "Savingaccount" erstelle in einem dictionary speichern {Name:Objekt_name} nun wenn ich den objekt_name aus der dictionary nehme und eine methode dazu
benutze z.b Objekt_name.show.credit() erhalte ich einen Fehler: AttributeError: 'str' object has no attribute 'show_credit' Weiss jemand wie ich das beheben könnte?
Hier ist noch der Code mit Menü als erstes bin ich bei 2. um einen Savingaccount zu erstellen dann bei 4. um eine methode auszuführen (Ich würde empfehlen es selber mal zu testen)
Code: Alles auswählen
def print_accounts(accounts):
print(accounts)
pass
def add_savingaccount(account_name, iban, name, address, accounts):
print(accounts, name)
accounts[name]=account_name
account_name = SavingAccount(iban , name, address)
pass
def get_savingaccount(accounts, name):
current_account = (accounts.get(name, 'Name nicht verfügbar'))
print(current_account)
user_answer = int(input("What do you want to do 1. get credit, 2. withdraw, 3. deposit, 4. close account, 5. open account, 6. change rate, 7. sleep: "))
if user_answer == 1:
current_account.show_credit()
elif user_answer == 2:
current_account.withdrawn(int(input("How much do you want to withdraw: ")))
elif user_answer == 3:
current_account.deposit(int(input("How much do you want to deposit: ")))
elif user_answer == 4:
current_account.close_account()
elif user_answer == 5:
current_account.open_account()
elif user_answer == 6:
current_account.change_interest_rate(int(input("How much do you want to deposit: ")))
elif user_answer == 7:
current_account.sleep(int(input("Sleep time: ")))
pass
def load_accounts(accounts, filename):
with open(filename, "r") as file:
accounts = json.load(file)
#for key in phone_book:
# accounts[key]=phone_book[key]
accounts.update(accounts)
pass
def save_accounts(accounts, filename):
with open(filename, "w+") as new_file:
json.dump(accounts, new_file, separators=(',',':'))
pass
def print_menu():
print ('1. Print Phone Numbers')
print ('2. Add a SavingAccount')
print ('4. Get SavingAccount')
print ('5. Load accounts')
print ('6. Save accounts')
print ('7. Quit')
print()
accounts = {}
menu_choice = 0
print_menu()
while True:
menu_choice = int(input("Type in a number (1-7): "))
if menu_choice == 1:
print_accounts(accounts)
print_menu()
elif menu_choice == 2:
print("Add Name and Number (Valid IBAN gets transferred)")
account_name = input("Accountname: ")
name = input("Name: ")
iban = "CH 54 3242 3345 5342 4235"
address = input("Address: ")
add_savingaccount(account_name, iban, name, address, accounts)
print_menu()
elif menu_choice == 4:
print("get_savingaccount")
name = input("Name: ")
get_savingaccount(accounts, name)
print_menu()
elif menu_choice == 5:
filename = input("Filename to load: ")
load_accounts(accounts, filename)
print_menu()
elif menu_choice == 6:
filename = input("Filename to save: ")
save_accounts(accounts, filename)
print_menu()
elif menu_choice == 7:
break
else:
print_menu()