2016-12-02 66 views
2

我想通過調用列表中的每個元素的__init__來構建參數列表中的對象列表。有可能這樣做嗎? 下面是一個例子:使用地圖調用__init__函數

class Foo(object): 
    def __init__(self,x): 
     self.x = x 

X = [1,2,3] 

ob1 = [Foo(x) for x in X] 
# works! 

ob2 = map(Foo.__init__, X) 
does not work 
+0

你可以做'list(map(Foo,X))'。或者在Python 2中:'map(Foo,X)',因爲Python 2'map'返回一個列表而不是迭代器。 –

回答

5

沒有理由來指定__init__;這是從來沒有明確呼籲。只需map(Foo, X)就可以了。