python学习:面向对象


一:先看一段程序

a = [1,2,3]
b = a 
b[0] = 0
print b
print a

你能猜出执行结果吗?让我们来执行一下:

[0, 2, 3]
[0, 2, 3]


为什么?我们只是修改了b集合的值,为什么a也变了呢?

因为当我们b = a 的时候,其实是将a和b对象指向了同一块内存【1,2,3】


二:再来看

同样的道理,如果修改a的值呢?

a = [1,2,3]
b = a 
b[0] = 0
a[-1] = 4
print b
print a

再将a最后一个元素修改成4,那么执行结果你猜出来了吗?

是的:

[0, 2, 4]
[0, 2, 4]

评论关闭