|
6鱼币
- a = [1,23,3]
- # b = [1,23,3]
- b = a
- id(a) == id(b)
复制代码
这个id是相等的我知道,结果为Ture
但是!!!!
- a = [1,23,3]
- b = [1,23,3]
- id(a) == id(b)
复制代码
这个id居然是不等的啊 !!!???我感觉自己内存地址的内容白学了
因为在Python的内部,a和b是两个完全不同的变量,值相等并不意味着id相等
详细讲解:
在Python的内部有一个类似于一个储存器的东西
你在定义和赋值变量a的时候,Python为这个变量专门开辟一段空间为存储变量a
第一段代码的底层步骤其实是将变量b的指向变量a的地址。所以,当你改变变量a的值的时候,变量b的值也会改变;在改变变量b的值的时候,变量a的值也会改变。因为在底层,它们都指向同一个地址,只不过名字不同罢了。你可以把他们当作是一体的,不是两个独立的变量
而第二段代码,他们是两个两个独立的变量,他们两个指向的内存地址都是不同的,所以它们互不影响。Python为它们两个开辟了不同的两个空间
|
最佳答案
查看完整内容
因为在Python的内部,a和b是两个完全不同的变量,值相等并不意味着id相等
详细讲解:
在Python的内部有一个类似于一个储存器的东西
你在定义和赋值变量a的时候,Python为这个变量专门开辟一段空间为存储变量a
第一段代码的底层步骤其实是将变量b的指向变量a的地址。所以,当你改变变量a的值的时候,变量b的值也会改变;在改变变量b的值的时候,变量a的值也会改变。因为在底层,它们都指向同一个地址,只不过名字不同罢了。 ...
|