Discuss / Python / 关于 指向 的问题

关于 指向 的问题

Topic source
s=100
t=(s,)
print(t)
s=200
print(t)

如上所示,按照例子所说,tuple的每个元素的指向不变,而指向的对象本身是可以变的。 那这里t[0]是指向变量s还是指向变量s所指向的数? 变量不会成为被指向的对象吗?

有知道的请解答解答~~~

刚才试了一下,感觉tuple是在初始化的时候,取变量的值初始化,因为我后面修改s后,发现tuple的值不会跟着改变的。 希望能帮到你,大家多交流

我当时写的时候也是发现,哪怕变量S的值变了,tuple也不会变。所以想知道,这种情况下,是不是tuple中的元素指向变量所指向的值,而不是指向变量本身。

四方台

#4 Created at ... [Delete] [Delete and Lock User]

在S=200后需要重新定义一下,t=(s,),就可以了

Cod1ng

#5 Created at ... [Delete] [Delete and Lock User]

你后面重新定义s=200的时候,此时的s与之前的s已经不是同一个东西了,系统重新建立了一个s,指向了200,你试试下面这两段代码就能理解清楚了

x=['a','b']
y=(1,2,x)
print(y)
x=['c','d']
print(y)
x=['a','b']
y=(1,2,x)
print(y)
x[0]='c'
x[1]='d'
print(y)

个人认为:你定义的s是整数类型,再次定义s=200,是修改了整数类型,tuple还是不能被修改的。改成下面这样就可以了。

s=[100]
t=(s,)
print(t)
s[0]=200
print(t)

  • 1

Reply