<分区>
如果通过设置清除变量,性能或内存是否有明显差异
x = 'something'
x = None
相对于
x = 'something'
del x
对于许多变量?
标签 python python-2.7
<分区>
如果通过设置清除变量,性能或内存是否有明显差异
x = 'something'
x = None
相对于
x = 'something'
del x
对于许多变量?
最佳答案
两次 'something'
的内存都将被回收如果 x
是对该字符串对象的最后引用。在第一个示例中,您使用了稍微多一点的内存,因为您保留了名称 x
。
我做了一些搜索,看起来内存会立即被回收:further reading .
但是,在概念上存在差异,您的程序的行为会有所不同。当您del x
时,您取消绑定(bind) 名称x
,并且尝试使用该名称将引发NameError
:
>>> x = 'something'
>>> del x
>>> x
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'x' is not defined
当您设置x = None
时,您重新绑定(bind) x
成为对象None
的名称,并且仍然可以按预期使用变量。例如真实/虚假测试:
>>> x = None
>>> if not x:
... print('hello cshin9!')
...
hello cshin9!
关于python - 将变量设置为无或删除变量之间有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36087458/