Python 引用 赋值

 

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'。

如果改变其内容,会重新分配内存( 考虑效率问题 ):

 

另一方面,像数组这样的可变类型,改变其内容是不会重新分配内存的:

 

当然,如果是要重新赋值,肯定会重新分配内存:

 

 

posted @ 2015-07-31 11:04  曾可爱  阅读(197)  评论(0编辑  收藏  举报