0

我一直在用 python 3.0 开发一个模拟支票账户的 OOP 程序,但我遇到了一个我无法弄清楚的错误。这里是:在程序的主要部分,我为用户提供了多个选项,例如退出、取款、存款和创建新帐户。当用户选择“创建新帐户”时,程序会创建一个对象,并且变量名必须是另一个变量,并且我不确定如何从标有变量的对象访问属性。基本上我要问的是,怎么做我将变量名设为变量,以便计算机可以跟踪它并使用它来访问对象的属性?这是我到目前为止的程序(如果有帮助?):

class Checking(object):
    """a personal checking acount"""

    def __init__(self , name, balance):
        print("a new checking acount has been created")
        self.name = name
        self.balance = balance


    def __str__(self):
        rep = "Balance Object\n"
        rep += "name of acount" + self.name + "\n"
        rep += "balance is " + self.balance + "\n"
        return rep


    def display(self):
        print("\nyour acount name is ",self.name)
        print("your balance is",self.balance)


    def deposit(self):
        amount = int(input("\nplease enter the amount of money you wish to diposit"))
        self.balance += amount
        print("\nthe balance of 'chris' is ", self.balance)

    def withdraw(self):
        amount = int(input("\nplease enter the amount you wish to withdraw "))
        while amount > self.balance:
            print("is an invalid amount")
            amount = int(input("\nplease enter the amount you wish to withdraw "))
        self.balance -= amount
        print("\nthe balance of 'chris' is ", self.balance)






    answer = None

    while answer != "0":
        answer = input("""what action would you like to take?
        0 exit
        1 deposit
        2 withdraw
        3 add an acount""")
        if answer == "1":
            input("ener your PIN").deposit()
        if answer == "2":
            input("enter your PIN ").withdraw()
        if answer == "3":
            input("enter num") = Checking(name = input("\nwhat do you want your acount name to be?"), balance = 0)
            input("enter you PIN").display()
            print(Checking)

    input("\n\npress enter to exit")
4

1 回答 1

0

使用字典; 将帐户存储在accounts字典中,以帐户编号为键:

accounts = {}

# ...
if answer == 3:
    account_number = input("enter num")
    account_name = input("\nwhat do you want your acount name to be?")
    accounts[account_number] = Checking(name=account_name, balance=0)

现在您可以列出用户拥有的所有帐户,例如:

for account_number, account in accounts.items():
    print('Account number: {}, account name: {}'.format(account_number, account.name))

等等

将局部变量用于可变数量的完全相同的项目绝不是一个好主意。在这种情况下,请改用列表或字典。

于 2013-04-25T14:37:40.027 回答