a=[1]
print(id(a)
print(id(a.append(2)))
这两个得出的地址会不一样
你第二个输出是有问题的,append()方法没有返回值,是None
你在问题中说,list 变成了【不可变】变量,
然后在描述中,又提示了是地址变化,没有对问题进行详细说明,所以本身你的问题就有点疑惑。
在这里,我们直接按你的代码来分析:
a = [1] #1
print(id(a)) #2
print(id(a.append(2))) #3
你这么处理,打印出来的内容肯定不一样,为什么?
而你的代码片段中#3部分,优先执行的是【id()】,他是把【a.append(2)】当做一个参数,也就是说,id的参数变成了新的变量;
他等同于下面这样:
a = [1]
print(id(a))
b = a.append(2)
print(id(b))
这就说明了,为何你的两次输出不一样的原因。
其次,你要输出一样,只要确保两次的变量是同一个即可,比如这样:
a = [1]
print(id(a))
a.append(2)
print(id(a))
以上,就是我的见解,如还有疑问,欢迎来讨论。