动态类型简介
变量 对象 引用 共享引用
变量:没用类型
a=3;a="string";单引号也可以
变量储存的是对象的指针
对象是存放数据的 有类型
最后变量的值 是 最后 一次的对象
赋值时 自主创建对象 然后把对象的指针放在变量里面
变量被赋值 上一个该变量储存的对象会被回收
两个变量可以共享一个对象 共享引用
变量赋值相当于指针赋值 指向的地址赋值 改变变量(指针)所指向的位置 而且赋值的左面会自动创建一个对象
对指向的内容的指向 储存的值地址 指针
list=[1,2,3]list创建一个引用三个对象的对象 list2=list list[0]相当于数组 相当于在地址上改内容 则list的值也会变 因为改变的是对象的元素 存在共享
不共享
list1=list[:] 对list1从重新创建一个对象 与list值一样 这样改变list元素 list1的元素就不会改变了
== 只要是值一样那么就是true a=1 b=1 a==b true 对象共用 ab指向同一个对象 c=1.0 对象与1不同 但1==3 true
is 相同对象才可以为true 1 is 2 true 1 is 3 false 对象不同
同一个字符串为一个对象 共用
相同值的浮点数 不是共享一个对象 a = b 肯定共享同一个对象
import sys 引进函数
sys.getrefcount(1) 参看该函数里面引用多少个1