2014-03-13 83 views
0

我想要創建對象,並將在同一「會話」中創建的每個對象都放入列表中,然後打印列表。但是,當我嘗試打印它時,我收到了這個:[<dag.dag object at 0x0000000003156518>]將對象添加到列表然後打印列表

通過元素循環遍歷整個列表元素的作品,但不僅僅是打印整個列表?

def Create_And_Return_Object(day,list_of_temperatures): 
    objekt = dag(day,list_of_temperatures) (imported class from another file) 
    return objekt 



def Return_List_Of_Objects(objekt): 
    list_of_objects = [] 
    list_of_objects.append(objekt) 
    return list_of_objects 


def main()  
    Objekt = Create_And_Return_Object(day,list_of_temperatures) 

    Objekt_list = Return_List_Of_Objects(objekt) 
    print(Objekt_list) 

當我打印Objekt_list我得到這個:

[<dag.dag object at 0x0000000003156518>] 

因此,第一個功能是應該創建並返回1個對象,它的作用。

但第二個應該把這個對象從函數編號1放入列表中,然後打印整個列表。但它不會!

+0

什麼問題?當你打印「Objekt_list」時,它會打印整個元素列表,就像你說的那樣。 – Kevin

回答

1

功能Return_List_Of_Objects完全按照您要求的 - 它創建一個列表,將其放入objekt並返回。您可以返回一個列表,其中包含一個dag.dag對象,然後將其打印出來。

但是,你dag.dag目標顯然沒有實現任何__repr____str__,該representation "magic methods"告訴Python中如何顯示例如實例打印時。你需要更新類來實現這些方法,然後當你打印列表時你會看到更有用的東西。

例如:

def __str__(self): 
    return str(self.day) # or whatever attribute(s) seem appropriate 

注意:Python將使用__repr__顯示一個容器內,所以如果你只實現一個,讓那一個!

+0

要明確,僅實現'__str__'不會改變對象在容器內的顯示方式。你必須至少做'__repr__'。 – Kevin

+0

這是正確的,我會更清楚 – jonrsharpe