引用
概念
- **变量 和 数据 **都是保存在内存中的
- 在 Python 中,函数 的参数传递和返回值 都是靠 引用 传递的
- **变量 **和 数据是分开存储的
- 数据 保存在内存中的一个位置
- 变量 中记录数据的地址,就叫 引用
- 使用** id() ** 函数可以查看变量中保存数据所在的 内存地址
注: 如果变量已经被定义,当给一个变更 重新赋值的时候,本质上是 修改了数据的引用
**示例
**
a=1
print(id(a))
print(id(1))
b=a
print(id(b))
a=2
print(id(a))
输出结果:从这里面可以看出 前三个的内存地址是一样的
**函数的参数传递与返回值的引用
**
def test(num):
print("传递的值是:%d,内存地址是:%d" %(num,id(num)))
result="test"
print("返回的值是:%s,内存地址是:%d" %(result,id(result)))
return result
a=1
print("需要传递的参数的值是:%d,内存地址是:%d"%(a,id(a)))
ss=test(a)
print("调用函数获取的返回值是:%s,内存地址是:%d" %(ss,id(ss)))
**输出结果
**
结论:从结果中可得知,在调用函数时,传入的变量,实际上是将变量的引用内存地址 传递进去了。函数在返回时,同样是将变量对应的 引用 返回出来了
可变和不可变类型
- 不可变类型,即内存中的数据不允许被修改
- 数字类型:int 、bool、float、complex、long
- 字符串 str
- 元组 tuple
- 可变类型,即内存中的数据可以被修改
- 列表 list
- 字典 dict
- 集合 set
示例
# 不可变数据类型
a=1
print("内存地址是:%d" %id(a))
a=2
print("内存地址是:%d" %id(a))
#可变数据类型
b=[1,2,3]
print("内存地址是:%d" %id(b))
b.append(4)
print("值是:%s,内存地址是:%d" %(b,id(b)))
#如果重新用 = 赋值,则会新建一块内存地址
b=[]
print("新内存地址是:%d" %id(b))
输出结果
结论:
- 可变类型的数据变化,是通过方法来 实现的
- 如果给一个可变类型的变量,赋值了一个新的数据,引用的地址则会不同
**哈希(hash)
**
- Python 中内置有一个名字叫做 hash() 的函数
- 接收一个 不可变类型 的数据作为参数
- 返回 结果是一个整数
- 哈希是一种算法,其作用就是提取数据的特征码(类似指纹)
- 相同的内容 得到 相同的结果
- 不同的内容 得到 不同的结果
- 在 Python 中,设置字典的键值对时,会首先对 key 进行 hash ,用来决定如何在内存中保存字典的数据,以方便 后续 对字典的操作:增、删、改、查
- 键值对的 key 必须是不可变类型的数据
- 键值对的 value 可以是任意类型的数据
# 对同一个不可变的数据类型,hash 两次,得到的结果是一样的
print(hash("123"))
print(hash("123"))
输出结果
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
函数
+关注
关注
3文章
4329浏览量
62576 -
变量
+关注
关注
0文章
613浏览量
28361 -
python
+关注
关注
56文章
4793浏览量
84634
发布评论请先 登录
相关推荐
python环境变量的配置pip
Python环境变量的配置和使用是每个Python开发者都需要了解和掌握的基本技能之一。在本文中,我们将详细介绍如何正确配置Python环境变量
python环境变量设置
安装python之后,我们往往面临这样一个问题,在命令行输入“python”,竟然出错,难道是没有安装成功吗?非也,其实是你的系统环境变量没有设置好。今天,小编就来带大家学学python
发表于 11-20 11:47
•2364次阅读
Python的常量与变量基础知识详解
Python是一门强类型的动态语言。 字面常量,变量没有类型,变量只是在特定的时间指向特定的对象而已,变量所指向的对象是有类型的。 变量:
发表于 12-14 05:31
•1814次阅读
python设置环境变量
我们想要运行python,需要安装Python,还要设置一些环境变量1,此电脑,右键属性2、高级系统设置-> 环境变量3、在系统变量中找到p
发表于 11-10 14:49
•890次阅读
Python私有变量的定义方法
通过在类中定义接口,实现私有变量的引用、读取和修改。除了Python私有变量是使用“_”定义之外,还有两种特殊变量,分别是:1. _xx
发表于 02-13 16:49
•1664次阅读
如何配置Python环境变量
配置Python环境变量是在安装Python解释器后的一项重要步骤,它允许您在任何位置都可以通过命令行或脚本运行Python解释器,使Python
结构体成员变量的引用方法123
这里采用的是常用的typedef关键字进行定义结构体类型,可以看到student_t这种数据类型里面有4个成员变量,分别是学号、姓名、分数、年龄,这些成员变量既然是变量就应该满足变量的
Python 不可变对象真的不可变吗
在日常的学习和工作中,经常会遇到"不可变对象"的问题,但是随着接触Python这门语言的时间越来越多,遇到的坑越来越奇怪。我不禁产生了一个疑问:不可变对象真的不可变吗? 我们知道元组就
python变量命名规则
Python是一种高级编程语言,广泛应用于软件开发、数据分析和科学计算等领域。在Python中,变量是用来存储数据的容器,它们具有名称以及与之关联的值。然而,变量的命名并不是随意的,而
评论