2017-09-24 101 views
0

我有一个简单的类我创建:如何从列表中打印对象

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

您需要实现'__repr__'的'__str__'对'list'使用'__repr__'对象包含。 –

回答

1

更换__str____repr__

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