1)a是引用,指向(标注)一段连续的内存区域,内容是 1,2
b是引用,指向一段连续的内存区域,内容是另一个引用。后者指向当时a所指向的东西,也就是那块内容为1,2的内存区域。
a被重定向,指向另一个内存区域,内容是4,5
2)a是引用,指向(标注)一段连续的内存区域,内容是 1,2
b是引用,指向一段连续的内存区域,内容是另一个引用。后者指向当时a所指向的东西,也就是那块内容为1,2的内存区域。
a所指向的内存区域的某一块内容被改变( a[ 1 ]=7 )
由于b内存放的这个引用,跟a指向的是同一块,因此b内的引用所指向的内容也被改变
3)str是不可变类型,就像 int, float 那样。str是被保存为数组的形式,因此可以切片,像myStr[1:5], myStr[3]这样。但是不可以部分赋值:myStr[2]=‘4‘。
如果改变其内容,会重新分配内存( 考虑效率问题 ):
另一方面,像数组这样的可变类型,改变其内容是不会重新分配内存的:
当然,如果是要重新赋值,肯定会重新分配内存:
时间: 2024-10-16 00:32:12