是否存在在一行中定义同一类的多个对象的任何简写方法。 (我不是在讨论列表或对象数组)..
我的意思是
p1,p2,p3 = Point()
有什么建议吗?
答案 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))