Python程序设计:人工智能案例实践
上QQ阅读APP看书,第一时间看更新

2.8 对象和动态类型

7(整数)、4.1(浮点数)和'dog'都可以称作对象,每个对象都具有一种类型和一个值:

对象的值是存储在对象中的数据。上面的代码段显示了内置类型int(整型)、float(浮点型)和str(字符串型)的对象。

变量引用对象

将对象分配给变量会将该变量的名称绑定(关联)到该对象。在代码中可以使用变量访问对象的值,如下所示:

在代码段[4]的赋值语句之后,变量x引用的是值为7的整数对象。从代码段[6]的结果可知,代码段[5]没有改变x的值。如需更改x的值,可使用下面的赋值语句:

动态类型

Python使用动态类型。所谓动态类型是指在代码执行期间才会确定变量所引用的对象的类型。下面的代码通过将变量x绑定到不同的对象并测试它们的类型来演示什么是动态类型:

垃圾回收

Python在内存中创建对象,并在必要时将其从内存中清除。在执行代码段[10]之后,变量x改为引用float对象。来自代码段[7]的整数对象不再绑定到任何变量。此时,Python会自动从内存中清除该对象,此过程称为垃圾回收。垃圾回收有助于确保有更多的内存能用于所创建的新对象,我们将在后面的章节中具体讨论这一机制。