零基础学python-3.5 内存管理

Posted zhchoutai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了零基础学python-3.5 内存管理相关的知识,希望对你有一定的参考价值。

* 变量无需事先声明

*?变量无需指定类型

*?程序猿不用关系内存管理

*?变量名会被回收

*?del能够直接释放资源

1.python使用的是引用调用,而不是值调用,他使用的回收算法是引用计数算法,我以下举两个样例

x = 4
y = 4
aList = [1, 2, 3]
bList = [1, 2, 3]
print(x is y)
print(x == y)
print(aList is bList)
print(aList == bList)
a = 3.2
b = 3.2
print(a is b) 
print(a == b)

输出结果:

True
True
False
True
True
True

从输出结果分析我们得出以下结论,

1)假设单纯是整形、浮点型、字符串型这些,返回的都是同一个结果,由于它们值同样,并且引用的地址也同样

2)假设是列表、元组、字典等,由于两个对象存储不同的地址,即便是值同样。可是假设对照引用地址,还是返回false



2.通过del,能够删除对象

接着上面的代码:

x = 4
y = 4
print(x is y)
print(x == y) 
aList = [1, 2, 3]
bList = [1, 2, 3]
print(aList is bList)
print(aList == bList) 
a = 3.2
b = 3.2
print(a is b) 
print(a == b)
del a
a

输出结果:

True
True
False
True
True
True
Traceback (most recent call last):
? File "D:\myWorkSpace\CRUDFile\com\ray\test\CRUDFile.py", line 14, in <module>
? ? a
NameError: name ‘a‘ is not defined


出现错误信息,a变量未定义,由于我们通过del 把a释放掉





以上是关于零基础学python-3.5 内存管理的主要内容,如果未能解决你的问题,请参考以下文章

Python 3.5从零开始学 (刘宇宙 著) 完整pdf扫描版[41MB]

Python 3.5从零开始学 (刘宇宙 著) 完整pdf扫描版[41MB]

零基础怎样写代码?

零基础学C语言知识总结十一:C语言的内存四区

零基础学Java—对象的内存图

从零开始学c++——C++动态内存管理