方法是打印出我意想不到的东西

2024-05-23 14:43:27 发布

您现在位置:Python中文网/ 问答频道 /正文

class Bank:
    def __init__(self, name, id, balance): 
        self.name = name
        self.id = id
        self.balance = balance
    def print_out(self):
          return self.name, self.id, self.balance
x = Bank("Kyle", 12345, 500)
print x.print_out()

我得到("Kyle", 12345, 500)作为我的输出,但我期望Kyle 12345 500


Tags: nameselfidreturninitdefoutclass
2条回答

returnwith multiple objects返回一个元组,因此()和对象按原样表示,字符串为“”

为了有一行包含所有参数,您需要对字符串进行操作

试试这样的

print "%s %d %d" % x.print_out()

编辑:

您可以将退货条件更改为:

def print_out(self):
    return "%s %d %d" % (self.name, self.id, self.balance)

除了编写额外的函数外,类还有一个内置的represente属性__repr__,您可以修改它。每次在案例中调用print x时,都会得到__repr__的返回值

__repr__的标准值是一些散列。 要修改__repr__,可以执行以下操作:

class Bank:
    def __init__(self, name, id, balance): 
        self.name = name
        self.id = id
        self.balance = balance
    def __repr__(self):
        return "%s %d %d" % (self.name, self.id, self.balance)

所以当你做以下事情的时候

x = Bank("Kyle", 12345, 500)
print x

得到输出Kyle 12345 500作为对象的表示

相关问题 更多 >