实例化对象并使用类定义__init__

时间:2019-06-06 00:07:29

标签: python python-3.x

因此对于这段代码,程序必须实例化对象“ 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="")

1 个答案:

答案 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__