请查看以下代码段:
class MyObj(object):
name = ""
def __init__(self, name):
self.name = name
v = [ {} ] * 2
def f(index):
v[index]['surface'] = MyObj('test')
v[index]['num'] = 3
if __name__ == '__main__':
f(0)
f(1)
v[0]['num'] = 4
print v[1]['num']
我希望最后一行的输出是3
;但是它输出了4
。所以它应该意味着新对象总是在同一个引用地址创建的。你知道吗
我怎样才能避免这种行为?(即,如何打印上述代码4?)你知道吗
您需要创建两个dict:
或使用循环:
您正在创建对同一对象的两个引用。你知道吗
相关问题 更多 >
编程相关推荐