一、引用赋值
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变量的指针指向了这个新的地址。
三、引用赋值与按值赋值的区别
引用赋值:内存地址已经存在了,且赋值给了多个变量。
按值赋值:内存地址是新生成的,且只赋值给了一个变量。
版权归原作者 敲代码敲到头发茂密 所有, 如有侵权,请联系我们删除。