关于引用类型、值类型、不可变类型、可变类型
来源:5-3 值类型与引用类型
五阎
2023-04-02
感觉老师这里说得有点不对,这貌似就是访问并修改列表首地址,和通过下标访问并修改列表元素的区别。
我改成
a=[1,2]
b=a
a=[2,3]
print(b)
打印的是
[1,2]
类型的可不可变,指的是类型的成员属性可不可变
a=[1,2] //给一个变量赋值,a指向了[1,2]这个值的地址
b=a //把一个变量赋值给另一个变量,指向这个变量的地址。
a=[2,3] //把原有变量的地址改变了,第二个变量的地址其实没变,所以这是a,b已经是完全两个无关的对象了,这个时候谁变动都不会影响另一方
总结:
可变类型:有可以操作的成员变量
不可变类型:没有可以操作的成员变量
值类型:指向值(但其实还是指向值的首地址,只是这个值没有可以变动的成员属性)
引用类型指向:指向地址
在Python这里,可变类型=引用类型,不可变类型=值类型
只是课程的例子感觉不恰当,弄混了可变不可变指的是什么了
写回答
1回答
-
感觉这里变量引用和赋值,和可变不可变没有什么关系。这个总结是有些问题的,可变不可变以及值类型不应该这样来定义。可变不可变更多的是以是否开辟了新的内存地址来区别的
022023-04-12
相似问题