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

【Python】变量的引用

  • 🚩 WRITE IN FRONT 🚩       

  • 🔎 介绍:"謓泽"正在路上朝着"攻城狮"方向"前进四" 🔎
  • 🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评百大博主、华为云享专家、阿里云专家博主、掘金优秀创作者、全网粉丝量7w+、个人社区人数累计4w+、全网访问量100w+ 🏅
  • 🆔 本文章内容由 謓泽 原创 如需相关转载请提前告知博主 ⚠
  • 📑 创作时间:2022 年 4 月 22 日 📅
  • 📝 个人主页:謓泽的博客 📃
  • 📣 专栏系列:【Python】系列_謓泽的博客📃
  • 🙌 Gitee:謓泽 (wsxsx) - Gitee.com ⭐️
  • 🎁 点赞👍+ 收藏⭐️+ 留言📝​
  • ✉️ 我们并非登上我们所选择的舞台,演出并非我们所选择的剧本 📩

变量的引用

        变量 和 数据 都是保存在 内存 当中的。

        🍅计算机当中所有的数据都是必须要放在内存当中的,不同类型的数据占用的字节数不一样。

        在 Python 当中函数的参数传递以及返回值都是靠引用来进行传递的。

引用的概念

在 Python 当中......

⒈变量和数据是分开存储的。

🍅程序就可以通过变量名来访问对应的内存地址『数据类型分配一定大小的内存空间』

⒉数据保存在内存中的一个位置。

⒊变量中保存着数据在内存中的地址。

⒋变量中记录数据的地址,就叫做是引用

⒌id()函数可以查看变量中保存数据所在的内存地址。

注意→如果变量已经被定义了的话,当给一个变量赋值的时候,本质上是修改数据的引用。

  • Ⅰ:变量不再对之前的数据进行引用。
  • Ⅱ:变量改为对新赋值的数据进行引用。

用id()函数查看int当中的内存地址,示例代码如下↓

num = 123456
print(id(num))
print(id(123456))
# 变量当中的值与数据一样那么内存地址也同

运行结果🖊

2176464156944

2176464156944

拓展:在编写程序的时候我们可以养成一个好的习惯,看到赋值语句,我们可以把注意力首先放到等号的右侧当中。

调用函数传递实参 

示例代码如下↓

def test(num):print("在函数内部%d对应的内部地址是%d" % (num,id(num)))a = 10
print("变量保存数据的地址是%d" %(id(a)))
test(a)

运行结果🖊

变量保存数据的地址是3078915779152
在函数内部10对应的内部地址是3078915779152

注:形参的值传递到实参它们的值是相等的,所以地址也是相等的。

变量引用

变量引用代码如下示例↓

a = 10
print("第一次:%d" % a)
a = 20
print("第二次:%d" % a)
b = 5
a = b
print("第三次:%d" % a)

运行结果🖊

第一次:10

解释→定义一个整形变量a,并且赋值为1。
第二次:20

解释→将变量a赋值给20。
第三次:5

解释→定义一个整形变量b,并且赋值为5,再将b的值赋值给a。

函数的参数和返回值的传递

在python当中函数的实参和返回值都是靠变量的引用来进行传递的,示例代码如下↓

def test(num):passprint("test函数内部当中a变量的值[%d]和数据的地址[%d]" % (num,id(num)))
a = 20
# id()查看数据的地址
print("a变量的值[%d]以及变量当中保存数据的地址是[%d]" % (a,id(a)))
# 调用test函数
test(a)

运行结果🖊

        a变量的值[20]以及变量当中保存数据的地址是[2770576042896]
        test函数内部当中a变量的值[20]和数据的地址[2770576042896]

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

相关文章:

  • nextjs13如何进行服务端渲染?
  • Redis-基础篇
  • 【好书推荐-第七期】《RTC程序设计:实时音视频权威指南》(音视频开发必看!)
  • 还在犹豫学不学?鸿蒙技术是否有前途的最强信号来了
  • webpack的plugin 插件教程
  • v72.关于指针操作的补充
  • 【学习心得】爬虫JS逆向通解思路
  • 如何使用Logstash搜集日志传输到es集群并使用kibana检测
  • AutoEncoder和 Denoising AutoEncoder学习笔记
  • 计算机系统基础
  • live555学习 - 环境准备
  • C++ 模拟OJ
  • MariaDB MaxScale实现mysql8读写分离
  • 代码随想录day11(1)字符串:反转字符串中的单词 (leetcode151)
  • PlantUML - 时序图
  • VS Code 的粘性滚动预览 - 类似于 Excel 的冻结首行
  • Java中的List
  • Spring 框架模块深度解析:核心容器、数据访问、Web 层与其他关键模块
  • 前端配置开发环境,新电脑配置前端开发环境,Vue开发环境配置的详细过程(前端开发环境配置,电脑重置后配置前端开发环境)
  • 大模型(LLM)的量化技术Quantization原理学习
  • 2024.03.01作业
  • 力扣hot100:42.接雨水
  • 搜索回溯算法(DFS)1------递归
  • workstation 用途
  • 【三维重建】【SLAM】SplaTAM:基于3D高斯的密集RGB-D SLAM(CVPR 2024)
  • Go Barrier栅栏
  • [蓝桥杯 2023 省 B] 冶炼金属
  • 续Java的执行语句、方法--学习JavaEE的day07
  • 公网IP怎么获取?
  • 连接未来:探索嵌入式系统的智能化之路