1. 使用*创建list时要注意的问题
class Point(object):
def __init__(self, x, y):
self.x = x
self.y = y
def __repr__(self):
return '(%d, %d)' % (self.x, self.y)
itemList = [Point(-1, -1)] * 5
# 对列表元素进行赋值
for i in range(5):
itemList[i].x = i
itemList[i].y = i
print itemList
# [(4, 4), (4, 4), (4, 4), (4, 4), (4, 4)]
这是因为[Point(-1, -1)] * 5返回的是一个list,而list中每一个元素都引用同一个对象。