在python中定义同一个类的多个对象

时间:2011-08-01 19:50:32

标签: python object

是否存在在一行中定义同一类的多个对象的任何简写方法。 (我不是在讨论列表或对象数组)..

我的意思是

p1,p2,p3 = Point()

有什么建议吗?

4 个答案:

答案 0 :(得分:6)

使用生成器理解而不是列表理解可能稍微有点效率:

p1, p2, p3 = (Point() for _ in range(3)) # use xrange() in versions of Python where range() does not return an iterator for more efficiency

还有

的简单解决方案
p1, p2, p3 = Point(), Point(), Point()

利用隐式元组打包和解包。

答案 1 :(得分:3)

不是。

p1, p2, p3 = [Point() for x in range(3)]

答案 2 :(得分:2)

你到底想要达到什么目的?

此代码可以满足您的需求,但我不知道这是否是您的最终目标:

p1, p2, p3 = [Point() for _ in range(3)]

答案 3 :(得分:1)

这里也可以接受思考地图:

p1, p2, p3 = map(lambda x: Point(), xrange(3))

但是生成器表达似乎有点快:

p1, p2, p3 = (Point() for x in xrange(3))