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

1 投票
4 回答
713 浏览
提问于 2025-04-16 22:40

有没有什么简便的方法可以在一行里定义多个同类对象?(我不是在说对象的列表或数组)

我想要的类似于下面这样:

p1,p2,p3 = Point()

有什么建议吗?

相关问题:

4 个回答

3

其实不是这样的。

p1, p2, p3 = [Point() for x in range(3)]
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

这里也可以使用map函数:

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

不过,生成器表达式似乎会快一点:

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

撰写回答