Python对象与引用的介绍


Posted in Python onJanuary 24, 2019

对象

Python 中,一切皆对象。每个对象由:标识(identity)、类型(type)、value(值)组成。

  • 1. 标识用于唯一标识对象,通常对应于对象在计算机内存地址。使用内置函数 id(obj)可返回对象 obj 的标识。
  • 2. 类型用于表示对象存储的“数据”的类型。类型可以限制对象的取值范围以及可执行的操作。可以使用 type(obj)获得对象的所属类型。
  • 3. 值表示对象所存储的数据的信息。使用 print(obj)可以直接打印出值。

对象的本质:一个内存块,拥有特定的值,支持特定类型的相关操作。

引用

在 Python 中,变量也称为对象的引用。因为变量存储的就是对象的地址。变量通过地址引用了“对象”。

变量位于栈内存(压栈出栈等)。
对象位于堆内存。

Python 是动态类型语言,变量不需要显式声明类型。根据变量引用的对象,Python 解释器自动确定数据类型。

Python 是强类型语言,每个对象都有数据类型,只支持该类型支持的操作。

Python对象与引用的介绍

变量在使用前必须先进行初始化,也就是将变量绑定在一个对象上,格式如:变量名 = 表达式。执行过程中,解释器先运行右边的表达式,在堆内存中创建一个对象,然后将对象的内存地址赋给左边的变量,如上图所示。变量如果不初始化,会报“name is not defined”错误。

关于变量的赋值,常用链式赋值和系列解包赋值方式。链式赋值用于同一个对象赋值给多个变量。如x=y=123 相当于:x=123; y=123。系列数据赋值给对应相同个数的变量(个数必须保持一致),如a,b,c=4,5,6 相当于:a=4;b=5;c=6。

python中,删除一个变量的方法是del。变量从栈内存中删除后,其绑定的对象并没有从堆内存中立刻删除,对象没有了变量引用,会被垃圾回收器回收,释放内存,以节约内存空间。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
Python的动态重新封装的教程
Apr 11 Python
Python实用日期时间处理方法汇总
May 09 Python
Python3 XML 获取雅虎天气的实现方法
Feb 01 Python
Python图像的增强处理操作示例【基于ImageEnhance类】
Jan 03 Python
python dict 相同key 合并value的实例
Jan 21 Python
PyQt5 多窗口连接实例
Jun 19 Python
Django Celery异步任务队列的实现
Jul 24 Python
python elasticsearch从创建索引到写入数据的全过程
Aug 04 Python
Python K最近邻从原理到实现的方法
Aug 15 Python
python中sort和sorted排序的实例方法
Aug 26 Python
keras 自定义loss层+接受输入实例
Jun 28 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
Jan 05 Python
selenium+python自动化测试之多窗口切换
Jan 23 #Python
python 去除二维数组/二维列表中的重复行方法
Jan 23 #Python
selenium+python自动化测试之鼠标和键盘事件
Jan 23 #Python
selenium+python自动化测试之页面元素定位
Jan 23 #Python
python 实现矩阵上下/左右翻转,转置的示例
Jan 23 #Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
Jan 23 #Python
对Python实现累加函数的方法详解
Jan 23 #Python
You might like
用缓存实现静态页面的测试
2006/12/06 PHP
php下几个常用的去空、分组、调试数组函数
2009/02/22 PHP
PHP 程序员应该使用的10个组件
2009/10/31 PHP
php 多关键字 高亮显示实现代码
2012/04/23 PHP
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
2012/06/27 PHP
php抽象类使用要点与注意事项分析
2015/02/09 PHP
php提高脚本性能的4个技巧
2020/08/18 PHP
js本身的局限性 别让javascript做太多事
2010/03/23 Javascript
jquery中选择块并改变属性值的方法
2013/07/31 Javascript
深入理解jQuery中live与bind方法的区别
2013/12/18 Javascript
JavaScript实现多个重叠层点击切换效果的方法
2015/04/24 Javascript
jQuery实现点击弹出背景变暗遮罩效果实例代码
2016/06/24 Javascript
node.js入门教程之querystring模块的使用方法
2017/02/27 Javascript
jQuery设置图片等比例缩小的方法
2017/04/29 jQuery
CentOS 安装NodeJS V8.0.0的方法
2017/06/15 NodeJs
javascript  数组排序与对象排序的实例
2017/07/17 Javascript
LayUI表格批量删除方法
2018/08/15 Javascript
vue中各选项及钩子函数执行顺序详解
2018/08/25 Javascript
webpack打包多页面的方法
2018/11/30 Javascript
javascript实现搜索筛选功能实例代码
2020/11/12 Javascript
[01:25:09]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第二场
2014/05/24 DOTA
Python实现二叉堆
2016/02/03 Python
使用python进行广告点击率的预测的实现
2019/07/04 Python
python过滤中英文标点符号的实例代码
2019/07/15 Python
Spark处理数据排序问题如何避免OOM
2020/05/21 Python
python实现npy格式文件转换为txt文件操作
2020/07/01 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
2020/07/01 Python
如何利用Python 进行边缘检测
2020/10/14 Python
会走路的树教学反思
2014/02/20 职场文书
《彩色世界》教学反思
2014/04/12 职场文书
师德师风个人反思
2014/04/28 职场文书
小班幼儿评语大全
2014/04/30 职场文书
离婚协议书格式
2014/11/21 职场文书
预备党员群众意见
2015/06/01 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书
Nginx虚拟主机的搭建的实现步骤
2022/01/18 Servers