动态类型
变量、对象和引用
- 变量在赋值的时候在创建,它可以引用任何类型的对象,但必须在引用之前赋值。
- 变量是系统表的元素,拥有指向对象的连接的空间。
- 对象是分配的一块内存,,有足够的空间去表示他们所代表的值。
- 引用是自动形成的从变量到对象的指针。
- 类型属于对象,而不是变量。
对象的垃圾收集
每次x都被赋值给一个新的对象,,而前一个对象的引用计数器变为零,就会导致它的空间被回收。
共享引用和在原处修改
- 变量a和变量b都引用了相同的对象,即指向了相同的内存空间。
- 在原处修改,L1和L2引用了同一对象,所以改变了L1的值也改变了L2的值。
- 若要使L2的值不变,可使用拷贝。
共享引用和相等
- "=="测试两个被引用的对象是否有相同的值;’"is"测试两个变量名是否精确指向同一对象。
- 如果变量名引用值相等,但是是不同的对象,将返回False
- x和y应该是“==”(具有相同的值)的,但不是is(同一个对象)的。不过,因为小的整数和字符串被缓存并复用了,所以is告诉我们x和y是引用了一个相同的对象