【Python】变量的引用

news2024/11/18 9:43:38
  • 🚩 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):
    pass
    print("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.coloradmin.cn/o/1488419.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

光纤激光打标机如何在不锈钢产品上镭雕出白色效果

光纤激光打标机在不锈钢产品上镭雕出白色效果的关键在于对激光打标参数的精确控制。这涉及到激光的功率大小、打标速度、点与点之间的间距以及激光的频率等多个方面。 在镭雕过程中,激光能量与不锈钢表面发生相互作用,产生热效应和化学效应。通过调整激光…

什么是同源策略?如何检测跨站点 WebSocket 劫持漏洞?post 表单跳转跨域问题、Ajax跨域请求、浏览器特性和安全策略、WebSocket 协议连接

什么是同源策略?如何检测跨站点 WebSocket 劫持漏洞?post 表单跳转跨域问题、Ajax跨域请求、浏览器特性和安全策略、WebSocket 协议连接。 同源策略(Same Origin Policy)是一种浏览器安全机制,用于保护用户的信息和数据安全。它限制了来自不同源(协议、域名、端口)的网页…

c语言游戏实战(10):坤坤的篮球回避秀

前言: 这款简易版的球球大作战是博主耗时两天半完成的,玩家需要控制坤坤在游戏界面上移动,来躲避游戏界面上方不断掉下来的篮球。本游戏使用C语言和easyx图形库编写,旨在帮助初学者了解游戏开发的基本概念和技巧。 在开始编写代…

灾备建设中异地副本含义及使用

异地副本是指将备份数据存放在不同的地理位置,确保数据的安全性和可用性。这种备份方法可以降低数据丢失的风险,因为即使一个位置出现机房级灾难,导致数据出现故障,也可以从另一个位置的数据副本中恢复使用。 在进行异地副本备份…

LeetCode每日一题【c++版】- leetcode 2369. 检查数组是否存在有效划分【动态规划】

题目描述 题目链接:2369.检查数组是否存在有效划分 描述: 给你一个下标从 0 开始的整数数组 nums,你必须将数组划分为一个或多个连续子数组。如果获得的这些子数组中每个都能满足下述条件 之一 ,则可以称其为数组的一种有效划分…

JVM常用排查命令

top命令 top命令是我们最常用的Linux命令之一,它可以实时的显示当前正在执行的进程的CPU使用率,内存使用率等系统信息。top -Hp pid 可以查看线程的系统资源使用情况。 vmstat命令 vmstat是一个指定周期和采集次数的虚拟内存检测工具,可以…

Android 拍照本地图片选择框架适配

前言 通常技术方案的选择、会带来后续一些不可控的东西,这也是没法避免的,程序开发者中同时面对、测试、领导、产品各种要求。同时在网络上查找的资料也只是很旧的,不一定适合新设备,需要推倒重新弄 1、解决方案通过意图选择器做…

如何关闭谷歌浏览器“提示密码泄露”的弹窗

使用谷歌浏览器的时候,经常看见图中的提示,大致意思是: 你的密码被外泄,建议你立即检查和修改密码。 只要你不修改密码,这个弹窗就会不停地弹出来提示你。 那么怎么关闭这个弹窗呢? 第一个方法很简单&am…

情感分析(文本分类)数据集汇总

想在推荐前对评论做一些情感分析方面的工作,参考网上其它博主的博客大概整理了一下情感分析方面的数据集的内容,大致分为两类——多分类和二分类(俺比较关注的),中英文的数据集都汇总整理了一下,后面会关注一下相关的比…

processing绘制笑脸

笑脸效果图: processing代码: void setup(){size(1000,1000);//Canvas sizebackground(#ffcc33);//Canvas background color } void draw(){ strokeWeight(12);//face-width12px fill(#ffffcc);//face arc(500,500,200,200,0,TWO_PI);//face-size strok…

智慧公厕:打造智慧城市的环卫明珠

在城市建设中,公共卫生设施的完善和智能化一直是重要环节。而智慧公厕作为智慧城市建设的重要组成部分,发挥着不可替代的作用。本文以智慧公厕源头实力厂家广州中期科技有限公司,大量精品案例现场实景实图,解读智慧公厕如何助力打…

【物联网应用案例】从0到N,智慧农业的数据价值

智慧农业全方位渗透到农业的每一个环节,云端解决方案更推动了研究人员、农艺师及农民间的密切协作,为研发企业提供了既经济又具扩展性的完美方案。 据IDC预计,到2036年,农场收集的数据量将增加800%以上,这凸显了农业数…

AUKFUKF的MATLAB程序,含源码

adaptive UKF与UKF效果对比 只有一个m文件,直接拖到MATLAB上面就能运行并输出结果了 部分结果 程序源码 % adaptive UKF与UKF效果对比 % author:Evand % 作者联系方式:evandjiang@qq.com(除前期达成一致外,付费咨询) % date: 2023-11-07 % Ver1 clear;clc;close all; %%…

FPGA之加法逻辑运算

由于FPGA需要被反复烧写,它实现组合逻辑的基本结构不可能像ASIC 那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构。查找表可以很好地满足这一要求,目前主流FPGA都采用了基于SRAM 工艺的查找表结构。LUT本质上就是一个RAM。它把…

KMP算法模板

KMP算法模板 自用,相关题解参考

每日一练:LeeCode-203. 移除链表元素 【链表+虚拟头结点】

每日一练:LeeCode-203. 移除链表元素 【链表虚拟头结点】 思路设置虚拟头结点 本文是力扣 每日一练:LeeCode-203. 移除链表元素 【链表虚拟头结点】 学习与理解过程,本文仅做学习之用,对本题感兴趣的小伙伴可以出门左拐LeeCode-20…

深圳牵头打造鸿蒙原生应用软件生态 | 百能云芯

深圳市工业和信息化局、深圳市政务服务和数据管理局于3月3日联合印发了《深圳市支持开源鸿蒙原生应用发展2024年行动计划》。这一计划旨在通过政策引导、市场推动、社会协同的方式,将深圳打造成一个鸿蒙原生应用软件生态的中心,推动鸿蒙系统在当地的发展…

选择正确的图片格式:JPEG、PNG、GIF、TIFF、BMP和WebP的全面对比

title: 选择正确的图片格式:JPEG、PNG、GIF、TIFF、BMP和WebP的全面对比 date: 2024/3/4 18:35:42 updated: 2024/3/4 18:35:42 tags: 图片格式JPEG压缩PNG透明度GIF动画TIFF印刷BMP位图WebP压缩 在数字化时代,图片是我们生活和工作中不可或缺的一部分。…

SpringCloud的Consul

0.介绍 Console是一款服务发现、健康检查、分布式配置中心,有单独的web可供配置和查看的Spring家族的一员。 1.下载 https://developer.hashicorp.com/consul/install?product_intentconsul 2.启动 consul agent-dev访问localhost:8500 3 Java使用注册中心 …

Android Stdio Execution failed for task ‘:app:compileDebugKotlin‘ 报错解决

具体报错信息如下: compileDebugJavaWithJavac task (current target is 1.8) and compileDebugKotlin task (current target is 17)jvm target compatibility should be set to the same Java version.很显然,这是一个版本冲突问题,compile…