Python 使用map调用uuu init_uuu函数

Python 使用map调用uuu init_uuu函数,python,constructor,Python,Constructor,我想通过为列表中的每个元素调用\uuuu init\uuu从参数列表构造一个对象列表。有可能吗? 以下是一个例子: 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 没有理由指定\uuuu init\uuuu;这永远不会被显式调用。只要

我想通过为列表中的每个元素调用
\uuuu init\uuu
从参数列表构造一个对象列表。有可能吗? 以下是一个例子:

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

没有理由指定
\uuuu init\uuuu
;这永远不会被显式调用。只要
map(Foo,X)
就可以了。

你可以做
list(map(Foo,X))
。或者在Python2中:
map(Foo,X)
,因为Python2
map
返回一个列表而不是迭代器。