Python具有这两个(以及其他)内置对象。它们只是对象。刚开始时,它们还没有任何名称,但是要知道我们指的是什么,我们将它们称为
0x600D和
0xBAD。
在开始执行Python(2.x)脚本之前,该名称已
True绑定到该对象
0x600D,该名称已
False绑定到该对象
0xBAD,因此,当程序引用时
True,它看起来为
0x600D。
因为
0x600D并且
0xBAD知道名称
True和通常使用它们
False,这就是它们在打印时输出的内容,即返回
__str__方法等。
0x600D``'True'
True = False
现在将名称绑定
True到另一个对象。从现在开始,两个名称
True和都
False指向同一个对象
0xBAD,该对象在打印时输出
False。
True = True
并没有真正做任何事情:它接受name所引用的对象
True,并将新(旧)名称绑定
True到该对象。由于(由于上一步)在此之前
True引用
0xBAD,因此仍在
0xBAD此之后引用。因此,打印仍然输出
False。
True = not True
首先获取名称
True绑定到的对象
0xBAD。它将此对象提供给
not操作员。
not不在乎(或不知道)这里使用什么名字来指代
0xBAD,它只是知道给定
0xBAD它应该返回
0x600D。然后将此返回值提供给赋值运算符
=,将名称绑定
True到该对象。
由于名称
True现在再次指向object
0x600D,称为
print Trueoutput
True,因此世界再次美好。



