Python | 变量的引用
一、变量的引用
变量 和 数据 都是保存在内存中的
在Python中函数的 参数传递 以及 返回值 的都是靠 引用 传递
1、引用
Python中:
变量 和 数据 是分开存储的;
数据保存在内存中的一个位置;变量中保存着数据在内存中的地址
变量中记录数据的地址,就叫做引用
使用 id() 函数可以查看变量中保存数据所在的内存地址
<注> 如果变量已经被定义,当给一个变量赋值的时候,本质上是修改了数据的引用
变量不再对之前的数据引用,而改为对新赋值的数据引用
2、函数的参数和返回值的传递
Python中函数的实参/返回值 都是靠 引用 来传递的
二、可变和不可变类型
不可变类型,内存中的数据不允许被修改:
数字类型:int、bool、float、complex、long(2,x)
字符串:str
元组:tuple
可变类型,内存中的数据可以被修改:
列表:list <字典的key只能使用不可变类型的数据>
字典:dict
<注>
1、可变类型的数据变化,是用过 方法 来实现的
2、如果给一个可变类型的变量,赋值了一个新的数据,引用会修改
变量不再对之前的数据引用,而改为对新赋值的数据引用
三、哈希(hash)
1、Python中内置有一个名字为 hash(o) 的函数:
接收一个不可变类型的数据作为参数
返回结果是一个整数
2、哈希是一种算法,其作用是提取数据的特征码(指纹)
相同的内容,得到相同的结果;不同的内容,得到不同的结果
3、在设置字典的键值对时,会首先对key进行hash 以决定如何在内存中保存字典的数据,方便后续对字典的操作。
键值对中key必须是不可变类型的数据;value可以实任意类型的数据
四、局部变量和全局变量
局部变量 是在函数内部定义的变量,只能在函数内部使用
全局变量 是在函数外部定义的变量,所有函数内部都可以使用这个变量
1、局部变量
在函数内部定义,只能在函数内部使用
函数执行结束后,函数内部的局部变量,会被系统回收
不同的函数,可以定义相同名字的局部变量,不会互相产生影响
作用:在函数内部 临时保存需要使用的数据
局部变量的生命周期:
生命周期:变量从被创建到被系统回收的过程
局部变量在函数执行时才会被创建,在函数执行结束后被系统回收。
2、全局变量
全局变量在函数外部定义,所有函数内都可以使用这个变量
在函数执行时,需要处理变量时的流程:
a.首先查找函数内部是否存在指定名称的局部变量,如果有,直接使用
b.如果没有,查找函数外部是否存在指定名称的全局变量,如果有,直接使用
c.如果还没有,程序报错
(1)函数不能直接修改 全局变量的引用
(2)在函数内部如何全局变量的值:
如果在函数中需要修改全局变量,要用 global 进行声明
num = 10def demo():global numnum = 99print(num)demo()
全局变量命名建议:在变量名前增加 g_ 或者 gl_ 的前缀
Python | 变量的引用相关推荐
- Python变量的引用、标识、相等性 is和==区别
变量不是盒子 变量是标注,而不是盒子.Python变量类似于Java中的引用式变量,因为最好理解为附加在对象上的标注. 对于引用式变量来说,说把变量分配给对象更加合理.把变量s分配给'xxx',而不是 ...
- python变量名称引用变量_Python:按变量名引用对象属性?
我在用Python编写棋盘游戏专卖版.垄断有三种类型的土地,玩家可以购买:财产(如木板路),铁路和公用事业.房产的购买价格和租金在6种情况下都是可变的(0-4套房子或一家酒店).铁路和公用事业有一个固 ...
- Python变量和参数传递
目录 (1)Python变量不能独立存在 (2)变量是内存中数据的引用 3.Python的参数传递(重点) 1.Python的变量 (1)Python变量不能独立存在 比如在 C++ 等语言中,变量的 ...
- python 变量引用_Python 知识要点:变量及引用
变量使用前必须赋值,变量赋值后才会被创建. 变量名 = 值 变量的命名:可以由字母,数字,下划线组成,不能以数字开头,不能与关键字重名,每个单词小写. 定义变量时不需要指定变量的类型,在内存中创建一个 ...
- python函数里面引用外部变量_Python基础 变量进阶
目标 变量的引用 可变和不可变类型 局部变量和全局变量 01. 变量的引用 变量 和 数据 都是保存在 内存 中的 在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引用 传递的 1.1 ...
- python变量回收_Python变量的引用、拷贝和回收机制
1.Python中变量的引用 Python中的变量都是指针,都是某个内存对象的引用. python不允许程序员选择采用传值还是传引用.Python参数传递采用的肯定是"传对象引用" ...
- Python中的变量、引用、拷贝和作用域
在Python中,变量是没有类型的,这和以往看到的大部分编辑语言都不一样.在使用变量的时候,不需要提前声明,只需要给这个变量赋值即可.但是,当用变量的时候,必须要给这个变量赋值:如果只写一个变量,而没 ...
- python一个对象只能被一个变量引用吗_python中的对象、变量、引用的问题
对象.变量.引用 对象 对象包括 不可变对象 和 可变对象.但从某种意义上来说,可变和不可变并不是对立关系. int,string,float,tuple 这四类属于 不可变对象.这里不可变的含义是: ...
- Python基础知识:变量和引用
变量和引用 领取Python学习资料可以加小编的微信:tz2020jd 变量和数据都是保存在内存中的: 在python中函数的参数传递以及返回值都是引用传递的: 变量和数据是分开存储的: 变量中记录数 ...
最新文章
- 不用地图如何导航?DeepMind提出新型双路径强化学习「智能体」架构
- MFC中小笔记(三)
- 实事求实来看综合布线网络
- MONO Design创建电信3D机房
- Hadoop hdfs创建及删除目录代码示例
- python多进程参考代码
- Spring Cloud部分源码分析Eureka,Ribbon,Feign,Zuul
- 自定义Excel中的快捷键(Alt +1)
- DellaOS引导程序篇(完结)
- access数据库代做_矿井三维模型(代做矿山模型)
- 数据库系统原理与应用教程(006)—— 编译安装 MySQL5.7(Linux 环境)
- OpenXml 之 Excel 复制插入行
- GoogLeNet网络结构学习
- 安装a0时服务器名称不显示,现场审计实施系统(AO2011)安装图示
- h5 农场游戏开源_下一个开源领域是农场
- 你的公司怎么样激励员工?
- 河南省谷歌地球高程DEM等高线下载
- 食物链(Food Chain POJ 1182)
- 金仓数据库 时间没有 时分秒 的问题
- 整理了30款Python小游戏附源码,五一有的玩了