NoneType 是一类特别的类型,该类型只能有一个值 None,而且该值几乎没有任何可以做的操作。那其作用是什么呢?由于每个变量一定要有一个值,必须指向一个对象,在我们不知道其应该取什么值时就可以让其等于 None。
请看下面的例子:
>>> a = None >>> b = None >>> id(a) # 所有值为None的对象的地址相同,执行同一个对象 4368575992 >>> id(b) 4368575992 >>> a is b True
而且可以通过将某个变量设为 None 来释放原来的值。
如果我们认为某个变量对应的对象不再需要了,可以通过将该变量指向 None 对象,那么原来的对象就可能因为不再被使用而被自动销毁。该自动销毁的过程也被称作垃圾回收。
读者也许注意到了,Python 中有对象创建的过程,但是几乎没有看到对象销毁的过程。这一点和 C、C++ 语言不一样。在 C、C++ 中,如果是通过代码生成的对象,也需要通过代码去销毁。Python 和其他脚本语言一样,其有自己的垃圾回收机制,所以不用开发人员来操心对象的销毁。但是我们可以通过给变量赋值为 None 来提醒垃圾回收系统该对象不再需要使用,可以帮忙将其销毁。