python基础-引用赋值与按值赋值

导读:本篇文章讲解 python基础-引用赋值与按值赋值,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

一、引用赋值

1、什么是引用赋值?
定义了变量a,并且指向了内存中的一个地址,定义变量b时,将a变量的引用赋给b,两个变量指向了同一个内存地址。
2、引用赋值,如果使用的是可变类型:会被关联修改。
a=[10,20,30]
b=a
print(id(a),id(b)) :2282000256896 ,2282000256896
b.append(40)
print(a) : [10, 20, 30, 40]
在这里插入图片描述

二、按值赋值

先要明白一个道理,字符串的驻留机制:仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串的驻留池中,python的驻留机制对相同的字符串只保留一份拷贝,后续创建相同字符串时,不会开辟新空间,而是把该字符串的地址付给新创建的变量。
驻留机制的几种情况(交互模式):
1、字符串的长度为0或者为1时;
在这里插入图片描述
2、字符串长度大于1时,且字符串中只包含大小写字母、数字、下划线时,采用驻留机制。
在这里插入图片描述
3、符合标识符的字符串;
在这里插入图片描述
4、字符串只在编译时进行驻留
b=‘a’+‘bc’在程序运行之间就拼接完成了
c=’’. join([‘ab’,‘c’]),c的结果在程序运行完成之后才会生成,程序运行会在内存中开的新的空间去存储新的值
在这里插入图片描述

5、[-5,256]之间的整数数字
在这里插入图片描述
在这里插入图片描述
什么是按值赋值?
通过赋值变量a,在内存中生成了一个新的地址,a变量的指针指向了这个新的地址。

三、引用赋值与按值赋值的区别

引用赋值:内存地址已经存在了,且赋值给了多个变量。
按值赋值:内存地址是新生成的,且只赋值给了一个变量。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/74408.html

(0)
小半的头像小半

相关推荐

极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!