一、变量的引用

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

在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 | 变量的引用相关推荐

  1. Python变量的引用、标识、相等性 is和==区别

    变量不是盒子 变量是标注,而不是盒子.Python变量类似于Java中的引用式变量,因为最好理解为附加在对象上的标注. 对于引用式变量来说,说把变量分配给对象更加合理.把变量s分配给'xxx',而不是 ...

  2. python变量名称引用变量_Python:按变量名引用对象属性?

    我在用Python编写棋盘游戏专卖版.垄断有三种类型的土地,玩家可以购买:财产(如木板路),铁路和公用事业.房产的购买价格和租金在6种情况下都是可变的(0-4套房子或一家酒店).铁路和公用事业有一个固 ...

  3. Python变量和参数传递

    目录 (1)Python变量不能独立存在 (2)变量是内存中数据的引用 3.Python的参数传递(重点) 1.Python的变量 (1)Python变量不能独立存在 比如在 C++ 等语言中,变量的 ...

  4. python 变量引用_Python 知识要点:变量及引用

    变量使用前必须赋值,变量赋值后才会被创建. 变量名 = 值 变量的命名:可以由字母,数字,下划线组成,不能以数字开头,不能与关键字重名,每个单词小写. 定义变量时不需要指定变量的类型,在内存中创建一个 ...

  5. python函数里面引用外部变量_Python基础 变量进阶

    目标 变量的引用 可变和不可变类型 局部变量和全局变量 01. 变量的引用 变量 和 数据 都是保存在 内存 中的 在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引用 传递的 1.1 ...

  6. python变量回收_Python变量的引用、拷贝和回收机制

    1.Python中变量的引用 Python中的变量都是指针,都是某个内存对象的引用. python不允许程序员选择采用传值还是传引用.Python参数传递采用的肯定是"传对象引用" ...

  7. Python中的变量、引用、拷贝和作用域

    在Python中,变量是没有类型的,这和以往看到的大部分编辑语言都不一样.在使用变量的时候,不需要提前声明,只需要给这个变量赋值即可.但是,当用变量的时候,必须要给这个变量赋值:如果只写一个变量,而没 ...

  8. python一个对象只能被一个变量引用吗_python中的对象、变量、引用的问题

    对象.变量.引用 对象 对象包括 不可变对象 和 可变对象.但从某种意义上来说,可变和不可变并不是对立关系. int,string,float,tuple 这四类属于 不可变对象.这里不可变的含义是: ...

  9. Python基础知识:变量和引用

    变量和引用 领取Python学习资料可以加小编的微信:tz2020jd 变量和数据都是保存在内存中的: 在python中函数的参数传递以及返回值都是引用传递的: 变量和数据是分开存储的: 变量中记录数 ...

最新文章

  1. 不用地图如何导航?DeepMind提出新型双路径强化学习「智能体」架构
  2. MFC中小笔记(三)
  3. 实事求实来看综合布线网络
  4. MONO Design创建电信3D机房
  5. Hadoop hdfs创建及删除目录代码示例
  6. python多进程参考代码
  7. Spring Cloud部分源码分析Eureka,Ribbon,Feign,Zuul
  8. 自定义Excel中的快捷键(Alt +1)
  9. DellaOS引导程序篇(完结)
  10. access数据库代做_矿井三维模型(代做矿山模型)
  11. 数据库系统原理与应用教程(006)—— 编译安装 MySQL5.7(Linux 环境)
  12. OpenXml 之 Excel 复制插入行
  13. GoogLeNet网络结构学习
  14. 安装a0时服务器名称不显示,现场审计实施系统(AO2011)安装图示
  15. h5 农场游戏开源_下一个开源领域是农场
  16. 你的公司怎么样激励员工?
  17. 河南省谷歌地球高程DEM等高线下载
  18. 食物链(Food Chain POJ 1182)
  19. 金仓数据库 时间没有 时分秒 的问题
  20. 整理了30款Python小游戏附源码,五一有的玩了

热门文章

  1. 亚马逊工具选品Jungle Scout正版插件和破解版的区别
  2. 6个经典的经济学小段子
  3. setfacl 权限导出_getfacl命令查看文件访问控制列表信息setfacl命令设置文件访问控制列表...
  4. Java输出不换行,在固定位置重复打印
  5. string::npos的一些说明
  6. 重启docker引擎,harbor退出问题解决
  7. Navicat连接服务器数据库(超详细)
  8. Python——异常处理
  9. 人工智能研究中心快递柜——代码分析八
  10. 企微魔盒v15.1企微SCRM