python引用概念

python中可以使用 id函数查看引用的是否为同一个内存空间,如果返回值相同,说明引用相同。在python中,值是靠引用来传递的。
python中所有的变量都是在堆中开辟内存,和C++或者java中的引用类似都是指向内存空间。

python引用相关说明

id() 查看变量引用地址,引用地址相同,指向空间一样。
python 对数字和字符串做了缓存机制。
小数字缓存池: -5~256的数字在程序一执行,就会自动加到内存中。
大数字缓存池:文本模式(IDE)才有这个功能。

代码验证

"""
引用
id() 查看变量引用地址,引用地址相同,指向空间一样
python 对数字和字符串做了缓存机制
小数字缓存池: -5~256的数字在程序一执行,就会自动加到内存中。
大数字缓存池:文本模式(IDE)才有这个功能
"""
a = 10
b = 10
print("id(a) = %d,id(b) = %d" % (id(a),id(b))) # 小数字缓存区
a = 1000000
b = 1000000
print("id(a) = %d,id(b) = %d" % (id(a),id(b))) # 大数字缓存区
a = 1000*100
b = 1000000
print("id(a) = %d,id(b) = %d" % (id(a),id(b))) # 没有缓存机制list1 = [1, 2, 3]
list2 = list1 # 指向同一块内存空间,更改list2同样会影响到list1
print("id(list1) = %d,id(list2) = %d" % (id(list1),id(list2)))
list2.append(4)
print("list1:%s list2:%s" %(list1,list2))
list3 = [1, 2, 3] # 指向新的内存空间和list2、list1 指向不一样, 但是 list1、list2、list3里面的1、2、3 都是同一块内存空间
print("id(list3) = %d" % id(list3))
print("id(list3[0]) = %d,id(list2[0]) = %d,id(list1[0]) = %d" % (id(list3[0]),id(list2[0]),id(list1[0])))

验证结果

python学习—python中的引用本质相关推荐

  1. Python学习---Python安装与基础1205

    1.0. 安装 1.1.1. 下载 官网下载地址:https://www.python.org/downloads/release/python-352/ 1.1.2. 配置环境变量 因为在安装的时候 ...

  2. Python学习 Python基本图形绘制

    Python学习 Python基本图形绘制 1.深入理解Python语言 2.Python蟒蛇绘制 3.turtle库的使用 4.代码调用方法分析 5.学以致用 1.深入理解Python语言 计算机技 ...

  3. Python学习(中一)

    4. 深入 Python 流程控制 除了 Python学习(上)介绍的 while 语句,Python 还从其它语言借鉴了一些流程控制功能,并有所改变. 4.1. if 语句 也许最有名的是 if 语 ...

  4. python类定义中__init__()_转:python学习——类中为什么要定义__init__()方法

    学习Python的类,一直不太理解为什么一定要定义init()方法,现在简要谈一下自己的理解吧. 1.不用init()方法定义类 定义一个矩形的类,目的是求周长和面积. 1 classRectangl ...

  5. python学习004-----python中%s的各种用法

    在python输出语句中,我们常用到"%s"符号.%s作用是将对象传到str()方法中进行处理,输出字符串.例如: str = '12345' print("下面输出一串 ...

  6. Python学习——Python海龟制图中的文字

    可以用海龟的write方法显示文字,代码如下: import turtle as tt.setup(600, 400) t.write("人生苦短,我用Python", font= ...

  7. Python学习-Python简介和基础入门

    1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是 ...

  8. Learning Python 学习Python Lynda课程中文字幕

    Learning Python 中文字幕 学习Python 中文字幕Learning Python Python–流行且易读性强的面向对象语言 - 既强大又易于学习 无论您是编程新手还是有经验的开发人 ...

  9. python学习-python学习笔记(一)python简介和基础

    1.什么是python? python是一种面向对象的,解释型的计算机语言,它的特点是语法简介,优雅,简单易学.1989年诞生,Guido(龟叔)开发. 编译型语言:代码在编译之后,编译成2进制的文件 ...

最新文章

  1. oracle home 命令,$ORACLE_HOMEbin目录下所有命令的使用方法及命令详解
  2. Hyperloop 让发布简洁高效
  3. 智能调温需要哪些计算机知识,一种智能调温的计算机用鼠标的制作方法
  4. JavaScript 技术篇-chrome浏览器读取剪切板命令document.execCommand(‘paste‘)返回false原因及解决方法
  5. 1个不为人知的 Jupyter notebook 使用技巧,今天分享出来。
  6. 最激动人心的视觉系统其实是最枯燥乏味的
  7. Oracle中获取文件中的数据,操作oracle中的数据文件
  8. Jmeter3.1官方自带的HTML图形测试报告 + 汉化
  9. 如何查看pytorch中层的名字
  10. 扩展NameValueCollection
  11. 卸载Microsoft Edge浏览器
  12. Office2010新体验-基于Office Visio 2010 图表绘制新体验
  13. 网络爬虫/数据抓取,反爬虫(更新版)
  14. 基于servlet+jsp 个人博客系统
  15. 【无标题】阿里滑块 通过 x82y接口、dll、源码 返回x5sec,可解决!
  16. 基于单片机的温湿度监测系统设计(程序)
  17. 深度学习-深度学习集群管理方案
  18. 最新 RibbonCreator 2021 OFFICE功能区编辑器
  19. 完美支持--WIN11--Crack--LightningChart-10.3.2.2
  20. (27)uniGUI for C++ builder之杂七杂八小知识

热门文章

  1. 洛谷 深基 第1部分 语言入门 第7章 函数与结构体
  2. laravel 提交Request 请求后会莫名多出一个s参数,导致数据库报错问题的解决方法
  3. 【C#桌面应用】第一节:使用C#开发桌面应用的准备
  4. ESP32 + ESP-IDF |GPIO 01 - 驱动外部两个LED灯,以每300ms的时间间隔闪烁
  5. python读awx文件_ansible awx用法
  6. 网页设计代码_盘点2020年网站设计工具让设计师插上翅膀
  7. Arduino笔记-使用独立电源给Arduino供电并闪灯
  8. C++带参数控制台(实例)
  9. 计算机组成原理个人笔记(二)
  10. 单继承模式下的JAVA和C++