2017-09-24 138 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)