这是我在这里的第一个问题,所以我希望我问'正确'的方式。下面的代码应该生成一个类对象,该对象应该通过最后的createAccount()函数命名。我期望该帐户是surname和dob的组合,但是它创建了名为accountName的类对象,而不是变量本身的产品。我可以看到为什么它正在这样做,但我看不出如何纠正它。
class Account(object):
def __init__(self, balance):
self.balance = balance
def deposit(self,amount):
self.balance += amount
print(self.balance)
return self.balance
def withdraw(self,amount):
if amount <= self.balance:
self.balance -= amount
print(self.balance)
return self.balance
else:
print("You do not have sufficient funds for this transaction, please contact your local branch manager")
def printBalance(self):
print(self.balance)
def createAccount():
name = input("Client Surname")
dob = input("client Date of Birth")
accountName = name+dob
print(accountName) # for debug
accountName = Account(0) # opening account balance is £0
return accountName
答案 0 :(得分:2)
我认为你想要的东西就像一个&#34;名称&#34;您的帐户对象中的字段。例如:
class Account(object):
def __init__(self, name, balance):
self.name = name
self.balance = balance
. . .
def createAccount():
name = input("Client Surname")
dob = input("client Date of Birth")
accountName = name + dob
print(accountName) # for debug
account = Account(accountName, 0.0) # opening account balance is £0
return account
createAccount返回的对象包含帐户余额和帐户名称。
答案 1 :(得分:0)
您正在创建一个变量accountName
,并为其分配一个文本字符串对象,其内容为出生名称和出生日期。
接下来,您正在破坏该问题并将accountName
重新分配给您正在创建的新帐户对象。当您为其分配新内容时,accountName的旧值会丢失。
您需要做的是将name + dob传递给Account的 init 函数,并在该函数中,将传递的帐户名称分配给对象变量,例如self.accountName:
def __init__(self, name, balance):
self.accountName = name
self.balance = balance
...
def createAccount():
name = input("Client Surname")
dob = input("client Date of Birth")
account = Account(name+dob, 0) # opening account balance is £0
return account
请注意,使用name+dob
作为帐户名称是一个坏主意,因为稍后很难确定名称的结束位置和出生日期。但至少,这会让你开始。