因此对于这段代码,程序必须实例化对象“ acc1”,其中acc1 = BankAccount(1000)
,其中余额为1000。使用银行帐户的类定义并使用显示方法acc1.display()
,代码应显示“ balance = 1000”。我的代码正在打印余额中的一部分,但未考虑1000部分。
class BankAccount:
def __init__ (self,balance):
self.balance = balance
acc1 = BankAccount("1000")
acc1.display()
print("Balance=",acc1,sep="")
答案 0 :(得分:1)
您正在尝试打印对象本身而不是其余额。您将获得为BankAccount
类打印的默认值(类似<__main__.BankAccount object at 0x7f2e4aff3978>
)。
有几种方法可以解决此问题:-
首先仅打印余额属性
print("balance=",acc1.balance,sep="")
如果要修改类,可以定义display
方法。这是不理想的,因为它限制了显示信息的使用方式。它必须显示为标准输出,不能与其他字符串等连接。灵活性较低。
最好定义__str__
并返回可以显示,连接等的显示字符串。
class BankAccount:
def __init__ (self,balance):
self.balance = balance
def display(self):
print('balance=%s' % self.balance)
def __str__(self):
return 'balance=%s' % self.balance
acc1 = BankAccount("1000")
acc1.display() # use display
print(acc1) # use __str__