如何从列表中打印对象

时间:2017-09-24 17:50:45

标签: python python-3.x

我创建了一个简单的类:

class C:
    def __init__(self):
        self.a = 1

我希望使用我创建的函数打印此类中的对象列表:

def p(s):
    print('hi ', s)

这就是我想要调用打印功能pp([C() for i in range(3)])

的方法

不幸的是,这会产生hi [<__main__.C object at 0x000000F92A8B9080>, <__main__.C object at 0x000000F92AB0E898>, <__main__.C object at 0x000000F92AB0E978>]

我认为问题是由于没有实施__str__所以我将班级改为:

class C:
def __init__(self):
    self.a = 1
def __str__(self):
    return str(self.a)

但我得到了相同的结果:(

我希望的是hi [1, 1, 1]hi 1, 1, 1或类似的东西,而不是我创建的对象的内存位置。

我可以用

for i in range(3): p(C())

但我想将一个对象列表传递给p函数,而不是为每个对象调用它。这可能吗?

1 个答案:

答案 0 :(得分:1)

__str__替换为__repr__

def __repr__(self):
    return str(self.a)