Abh*_*tia -3 python python-3.x
我正在尝试学习python中的作业我对此感到困惑.
>>> a=343434;b=343434
>>> a is b
True
>>> a=343434
>>> b=343434
>>> a is b
False
Run Code Online (Sandbox Code Playgroud)
Python解释器很聪明.在第一行,就可以看到两者的定义a和b和分配在同一时间,所以它认为":"男人,我可以让他们指向同一个位置来保存记忆",并且它确实是这样.它可以优化您的代码以便使用内存.
在第二种情况下,它会在看到定义后立即分配内存.它'思考':"嘿,我在这里有一个定义!让我分配一些内存!",它确实如此.它无法在此处针对内存使用优化代码.
这就是为什么这些物体不一样的原因.
这仅适用于"实时模式"(当您将命令插入解释器并立即处理它们时).如果你放
a=343434
b=343434
print a is b
Run Code Online (Sandbox Code Playgroud)
进入一个文件(比如说test.py),然后运行python test.py,它将输出True(至少在Python 2.7.10中),因为,与第一种情况一样,它可以立即看到整个代码并执行一些优化.
| 归档时间: |
|
| 查看次数: |
192 次 |
| 最近记录: |