如果类中有列表,实例化类的时候,不同实例中列表是指向相同的列表空间,例如:
# -*- coding: utf-8 -*-
import copy
class test():
name = {
'key1':['a', 'b', 'c'],
'key2':['1', '2', '3']
}
if __name__ == '__main__':
z1 = test()
z2 = test()
['key1'][1] = 'zcc'
['key1'][1] = 'zzh'
print
print
运行结果:
{'key2': ['1', '2', '3'], 'key1': ['a', 'zzh', 'c']}
{'key2': ['1', '2', '3'], 'key1': ['a', 'zzh', 'c']}
想要的结果是:['key1'][1] = 'zcc' ['key1'][1] = 'zzh'
实际的结果是:全部都设置成了zzh,此时需要对类中的列表做深拷贝。
====================================================
# -*- coding: utf-8 -*-
import copy
class test():
name = {
'key1':['a', 'b', 'c'],
'key2':['1', '2', '3']
}
if __name__ == '__main__':
z1 = test()
z2 = test()
= copy.deepcopy()
= copy.deepcopy()
['key1'][1] = 'zcc'
['key1'][1] = 'zzh'
print
print
运行的结果:
{'key2': ['1', '2', '3'], 'key1': ['a', 'zcc', 'c']}
{'key2': ['1', '2', '3'], 'key1': ['a', 'zzh', 'c']}
















