Python的语义

时间:2016-06-03 14:51:38

标签: python semantics

我需要澄清Python的语义。

当Python遇到表单

的声明时,这是真的吗?
x = some_term

正在创建一个新对象,正如评估术语some_term的过程所指定的那样?

现在假设Python遇到了以下几行:

x = the_term 

y = the_term

其中the_term是一个固定的术语(假设它不包含对生成“随机对象”的函数的任何引用)。正如我所看到的,Python的行为应该如下:首先创建一个新对象O1并将其与名称x相关联。然后创建第二个新对象O2并将其与名称y相关联。名称xy现在都在合适的名称空间中。对象O1和O2是不同的对象,它们占据内存中的不同位置,并且具有相同的值。因此测试

x == y 

应返回True,并测试

x is y

应该返回False。

请告诉我,为什么我会观察以下内容:

x=5

y=5

现在x==y返回(当然)True,x is y返回True。

但如果我们提出:

x=99999999999999999999

y=99999999999999999999

现在x==y返回(当然)为True,x is y返回False。

你可以告诉我发生了什么事吗?什么是Python的“真实”语义(因为我所描述的那个显然是错误的,正如这些例子所示)?

0 个答案:

没有答案