#在学Python中的指针时,遇到了这样一个问题:
a = ["3","2","1"]
b = a
b[0] = 30
这样我在打印a的值时,a的值也变成了:b的值。
但是第二行代码只把a的值赋给了b,第三行代码把b列表的数字3变为了30,而没有再把b的值赋给a。
但为什么打印a的值时也变成了b的值?
具体情况如下:
=,是赋值运算符,它并不复制对象。是在一个目标和一个对象之间建立绑定。当使用 = 操作符时,我们认为它创建了一个新的对象,但它并没有。它只是创建了一个新的变量,共享原始对象的引用。
b=a,并不是赋值,而是b也指向了a的地址了,所以改变b也就是改变了a
a的首地址指向了b,所以a0等于b的值,b的值没有变化。
=为赋值运算符,它并不复制对象。是在一个目标和一个对象之间建立绑定。当使用 = 操作符时,我们认为它创建了一个新的对象,但它并没有。它只是创建了一个新的变量,共享原始对象的引用。
谢谢,明白了