Есть ли способ для меня получить доступ к объектам класса учетной записи из списка после сравнения в Python3 - PullRequest
0 голосов
/ 13 марта 2020

Я использую Python3, я планирую создать приложение, которое получает количество счетов от пользователя и банка. Я беру учетное имя и номер от пользователя и храню его в коллекции (список). Как я должен сравнить атрибуты этого объекта или удалить этот объект, взяв номер счета от пользователя? Это мой код:

class Account:

    def __init__(self):
        print("Enter the account name")
        self.account_name = input()
        print("Enter the account no")
        self.account_num = int(input())
        # print("Enter the balance")
        self.balance = 0

    def __str__(self):
        return f"{self.account_name,self.account_num,self.balance}"


class Bank:

    def __init__(self):
        print("Enter Bank Name")
        self.bname = input()
        print("Enter Bank Branch")
        self.branch = input()
        self.account_list = []
        # self.transfer_balance(13)

    def get_AccountList(self):
        print("Enter Account Details")
        self.account_list.append(Account())

    def delete_acccount(self, num):
        del self.account_list[num]

    def print_bank_details(self):
        print(f"Name of the Bank : {self.bname}")
        print(f"The name of the branch is : {self.branch}")

        for i in range(1, len(self.account_list)):
            print(f"Id : {i}---> {self.account_list[i]}")


def function():

    account_obj = []
    ans=True
    bank1 = Bank()
    while ans:
        print ("""
        1. Accept User Account INfo
        2. Print Account INfo
        3. Delete the account by Number
        4. Print Bank Info
        """)
        print("What would you like to do? ")

        ans=input()
        if ans == "1":
            print("\n Enter The Account Details")
            bank1.get_AccountList()
        elif ans == "2":
            print("\n Print Acccount info in the bank")
            bank1.print_bank_details()
        elif ans == "3":
            print("\n Enter the ID of the account to be deleted")
            num= int(input())
            bank1.delete_acccount(num)
        elif ans == "4":
            print("\n Goodbye")
        elif ans != "":
            print("\n Not Valid Choice Try again")

function()

1 Ответ

0 голосов
/ 13 марта 2020

Сравнение номера счета каждого объекта - единственный вариант. Go через функцию delete_account, я закодировал решение. Также была ошибка в функции print_bank_details. Он не печатал первые данные аккаунта, я тоже исправил это.

class Account:

    def __init__(self):
        print("Enter the account name")
        self.account_name = input()
        print("Enter the account no")
        self.account_num = int(input())
        # print("Enter the balance")
        self.balance = 0

    def __str__(self):
        return f"{self.account_name,self.account_num,self.balance}"


class Bank:

    def __init__(self):
        print("Enter Bank Name")
        self.bname = input()
        print("Enter Bank Branch")
        self.branch = input()
        self.account_list = []
        # self.transfer_balance(13)

    def get_AccountList(self):
        print("Enter Account Details")
        self.account_list.append(Account())

    def delete_acccount(self, num):
        for account in self.account_list:
          if account.account_num == num:
            self.account_list.remove(account)
            return True
        print("Account number was not found")

    def print_bank_details(self):
        print(f"Name of the Bank : {self.bname}")
        print(f"The name of the branch is : {self.branch}")

        for i in range(0, len(self.account_list)):
            print(f"Id : {i+1}---> {self.account_list[i]}")


def function():

    account_obj = []
    ans=True
    bank1 = Bank()
    while ans:
        print ("""
        1. Accept User Account INfo
        2. Print Account INfo
        3. Delete the account by Number
        4. Print Bank Info
        """)
        print("What would you like to do? ")

        ans=input()
        if ans == "1":
            print("\n Enter The Account Details")
            bank1.get_AccountList()
        elif ans == "2":
            print("\n Print Acccount info in the bank")
            bank1.print_bank_details()
        elif ans == "3":
            print("\n Enter the ID of the account to be deleted")
            num= int(input())
            bank1.delete_acccount(num)
        elif ans == "4":
            print("\n Goodbye")
        elif ans != "":
            print("\n Not Valid Choice Try again")

function()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...