标签:范围 logs 容器 pre 没有 false 数据 类型 地址
a is b:a和b的内存地址相等
a == b :a和b的值相等
a = b =1,:是1的两个标签
a = 1和b = 1理论上说对象是不一样的。
>>> a =1 >>> b =1 >>> c = 2 >>> a == b #值相等 True >>> a == c False >>> a is b #a和b指向的是一个值,内存地址相同 True >>> a is c False >>> e = 365 #但是有例外 >>> f = 365 >>> e is f False >>> e == f True
先要在重新声明的是:字符串、数字都是属于非容器,因此不存在拷贝一说。
按理说,365和1都是属于类原子类型,都是不能在更改,为啥会有完全不同的结果了?
这是因为对于数字来说,有一个小数据池,创建相同的数字对象,都会指向一个相同的数据池,范围在-5~~255之间,这样做也是为了节省内存。
>>> e = 365 >>> f = 365 >>> e is f False >>> e == f #值虽然相等 True >>> id(e) #内存地址并不相同 139928493356080 >>> id(f) 139928493355696
相对于数字来说,没有空格的字符串也有小数据池。
>>> oo = ‘wo shi‘ >>> op = ‘wo shi‘ >>> id(oo) 139928493584544 >>> id(op) 139928493584656 >>> a = ‘wqrqw‘ #有地址池 >>> b = ‘wqrqw‘ >>> id(a) 139928493545768 >>> id(b) 139928493545768
标签:范围 logs 容器 pre 没有 false 数据 类型 地址
原文地址:http://www.cnblogs.com/yangmingxianshen/p/7738966.html