a为什么没变2
我只是将a重新赋值了啊(赋值不是生成a和1的地址,将a指向1吗?)?不是因该(2,)?
我只是将a重新赋值了啊(赋值不是生成a和1的地址,将a指向1吗?)?不是因该(2,)?
2015-07-17
实际上a=1赋值的时候a的内容就是整数1的地址。
t=(a,)开辟的内存空间中,t有一个地址,t[0]的内容就是a的内容,也就是1的地址。所以输出的时候跳到1那里输出1。
a=2赋值改变了a的内容,然而没有改变t的相关东西,t[0]还是1的地址,print t结果还是(1,)
想要达到你的效果要重新定义t,而重新定义这就算不上是改变tuple了
a=1
t=(a,)
print t
a=2
t=(a,)
print t
试了下list里面放变量也是一样的
a=1
b=2
L=[a,b]
a=3
b=4
print L
出来还是[1,2]。所以list或者tuple跟变量结合在可改变性方面好像没什么意义的样子。。。
还有如果是这样
L=[a,b]
a=1
b=2
程序会报错,因为开始定义L的时候并不知道a的地址是啥,a作为一个变量内容还是空的。
举报