零基础学python-3.5 内存管理
2024-09-04 10:23:45
* 变量无需事先声明
* 变量无需指定类型
* 程序猿不用关系内存管理
* 变量名会被回收
* 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释放掉
最新文章
- Setup QT 5.5.1 + OpenCV 3.0 + Visual Studio 2013 on windows 10
- Android Http请求方法汇总
- poj----1330Nearest Common Ancestors(简单LCA)
- 那些盒模型在IE6中的BUG们,工程狮的你可曾遇到过?
- C语言中关于float和double的输入输出格式
- 51nod贪心算法入门-----活动安排问题
- mkpasswd
- Android4.0 以后不允许在主线程进行网络连接
- Java 编程的动态性,第3部分: 应用反射--转载
- 一步一步学习SignalR进行实时通信_3_通过CORS解决跨域
- 使用RouteDebugger对MVC路由进行调试
- Mac 登录界面多了一个其它账户删除
- Cordova各个插件使用介绍系列(二)—$cordovaBarcodeScanner扫描二维码与生成二维码
- FPGA图像处理之行缓存(linebuffer)的设计一
- java多线程 生产者和消费者 lock
- centos-6.5安装部署LNMP环境
- SQLAlchemy中表结构的一对一
- 使用Anemometer分析MySQL慢查询记录
- CISCO、H3C、华为三层交换机端口二三层切换命令对比
- 两个提高工作效率的神器-Restlet Client和fe助手