Python变量是指针吗?否则,它们是什么?
问题描述
据我所知,Python中的变量只是指针。
根据此规则,我可以假定此代码片段的结果为:
i = 5
j = i
j = 3
print(i)
将是3
。
但是我得到了一个意外的结果,结果是5
。
此外,我的Python书确实介绍了这个示例:
i = [1,2,3]
j = i
i[0] = 5
print(j)
结果将是[5,2,3]
。
我理解错误的地方是什么?
解决方案
我们称它们为引用。他们是这样工作的
i = 5 # create int(5) instance, bind it to i
j = i # bind j to the same int as i
j = 3 # create int(3) instance, bind it to j
print i # i still bound to the int(5), j bound to the int(3)
小整数被扣留,但这对此解释并不重要
i = [1,2,3] # create the list instance, and bind it to i
j = i # bind j to the same list as i
i[0] = 5 # change the first item of i
print j # j is still bound to the same list as i
相关文章