在Python中定义同一类的多个对象
有没有什么简便的方法可以在一行里定义多个同类对象?(我不是在说对象的列表或数组)
我想要的类似于下面这样:
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))