使用变量创建 class 个对象
Using variables to create class objects
这是我在这里的第一个问题,所以我希望我问的是 'right' 方式。下面的代码应该生成一个 class 对象,该对象应该在最后通过函数 createAccount() 命名。我原以为该帐户是姓氏和出生日期的组合,但它创建了名为 accountName 的 class 对象,而不是变量本身的乘积。我可以看到 为什么 它正在这样做,但我不知道如何更正它。
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
我想你想要的是你的 Account 对象中的 "name" 字段。例如:
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 返回的对象包含账户余额和账户名。
您正在创建一个变量 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
作为帐户名是个坏主意,因为以后很难弄清楚名字的结尾和出生日期的开始。但至少,这会让你入门。
这是我在这里的第一个问题,所以我希望我问的是 'right' 方式。下面的代码应该生成一个 class 对象,该对象应该在最后通过函数 createAccount() 命名。我原以为该帐户是姓氏和出生日期的组合,但它创建了名为 accountName 的 class 对象,而不是变量本身的乘积。我可以看到 为什么 它正在这样做,但我不知道如何更正它。
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
我想你想要的是你的 Account 对象中的 "name" 字段。例如:
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 返回的对象包含账户余额和账户名。
您正在创建一个变量 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
作为帐户名是个坏主意,因为以后很难弄清楚名字的结尾和出生日期的开始。但至少,这会让你入门。