2013-04-25 43 views
0

我一直在Python 3.0中的OOP程序模拟一个支票帐户,我遇到了一个我找不到的bug。这里是:在该计划的主要部分,我给了 用户多个选项,如退出,提取,存款和创建新帐户。当用户选择“创建新帐户”时,程序创建一个对象,变量名称必须是另一个变量,而我不知道如何从标有变量的对象访问属性。基本上我问的是,怎么做我将一个变量名变为变量,以便计算机可以跟踪它并使用它来访问对象的属性? 这里是程序我到目前为止:Python检查帐户模拟器

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") 

回答

0

使用字典;(是否有帮助?)商店账户在accounts字典的acount号码作为重点:

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)) 

使用局部变量对于数量可变的项目来说,这些都是一样的,从来都不是一个好主意。在这种情况下,请使用列表或字典。

+0

非常感谢你 – vitruvianrockman 2013-04-25 14:40:47

+0

我真的不知道如何接受我只是点击按钮 – vitruvianrockman 2013-04-25 17:04:42

+0

然后我想通了 – vitruvianrockman 2013-04-25 17:05:01