当前位置: 首页 > news >正文

Python---引用变量与可变、非可变类型

引用变量

在大多数编程语言中,值的传递通常可以分为两种形式“  值 传递  与  引用 传递”,但是在Python中变量的传递基本上都是引用传递

变量在内存底层的存储形式

a = 10

第一步:首先在计算机内存中创建一个数值10(占用一块内存空间)

第二步:在栈空间中声明一个变量,如a

第三步:把数值10的内存地址赋予给变量小a,形成所谓的“引用关系”

验证Python中变量的引用关系

可以使用内置方法id(),其参数就是要显示的变量信息 => id(变量名称)


a = 10
print(id(a))


把一个变量赋予给另外一个变量的影响


a = 10
b = a
print(id(a))
print(id(b))

运行结果:

说明:由以上运行结果可知,当我们把一个变量赋予给另外一个变量时,其两者指向的内存地址相同。就说明a和b指向了同一块内存空间,原理图如下:

思考:如果在b = a以后,我们改变了变量a的值,问变量b是否会受到影响?


# a = 10
# print(id(a))a = 10
b = aa = 100
print(b)  # 10 或 100print(id(a))
print(id(b))

原理图:

总结:不可变数据类型(数值)在赋值以后,其中一个值的改变不影响另外一个变量,因为两者指向空间地址不同。

http://www.lryc.cn/news/246306.html

相关文章:

  • GDOUCTF2023-Reverse WP
  • Day43力扣打卡
  • elementui的table合并列,三个一组
  • HarmonyOS-Service服务开发(一)
  • FLASK博客系列4——再谈路由
  • sql之left join、right join、inner join的区别
  • 京东秒杀之秒杀详情
  • mobaxterm 下载、安装、使用
  • 办公技巧:Word中插入图片、形状、文本框排版技巧
  • apple macbook M系列芯片安装 openJDK17
  • C语言——打印出所有的“水仙花数”
  • <HarmonyOS第一课>应用程序框架 【课后考核】
  • 自动驾驶学习笔记(十一)——高精地图
  • HCIA-H12-811题目解析(2)
  • Docker-简介、基本操作
  • Codeforces Round 911 (Div. 2)(C dp D gcd 分解+容斥 E tarjan+dp)
  • 给csgo游戏搬砖新手的十大建议
  • 西南科技大学模拟电子技术实验一(常用电子仪器的使用及电子元器件的识别)预习报告
  • 回归分析例题(多元统计分析期末复习)
  • Linux多路转接select,poll
  • 如何轻松将 4K 转换为 1080p 高清视频
  • 责任链模式 (Chain of Responsibility Pattern)
  • 企业营销管理能够实现自动化吗?怎么做?
  • 【数据结构】什么是栈?
  • 基于C#实现鸡尾酒排序(双向冒泡排序)
  • CentOS添加开机启动
  • SpringCloudAlibaba之Nacos的持久化和高可用——详细讲解
  • vue3安装eslint和prettier,最简单的步骤
  • Day32| Leetcode 122. 买卖股票的最佳时机 II Leetcode 55. 跳跃游戏 Leetcode 45. 跳跃游戏 II
  • 95.STL-遍历算法 for_each