方法是打印我不期望的东西

时间:2014-11-06 01:47:45

标签: python class methods

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

2 个答案:

答案 0 :(得分:1)

带有多个对象的

return 返回一个元组,因此是(),对象按原样表示,字符串用""。

为了让一行包含你需要字符串操作的所有参数。

尝试类似

的内容
print "%s %d %d" % x.print_out()

编辑:

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

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

答案 1 :(得分:1)

除了编写额外的函数外,类还有一个可以修改的内置表示属性__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作为对象的表示