首页 > 其他分享 >引用

引用

时间:2022-09-18 23:24:08浏览次数:59  
标签:aa bb 内存 print 内存地址 id 引用

1、 了解引用

  python中一切的传递都是引用(地址),无论是赋值还是函数调用,不存在值传递。

  通俗理解变量使用了某个内存地址称为引用该数据的内存地址
  提示:变量最终保存的是数据在内存中的一个地址,也就是说变量保存的是内存地址, 数据都是保存在内存里面
  内存地址:就是数据在内存中的一个物理位置, 通过内存地址可以在内存中找到对应的数据。

  我们可以用id()来判断变量是否为同一个值得引用。我们可以将id值理解为那块内存的地址标识。

# 1. int类型
# 不可变:int:1, 1声明变量保存整型数据,把这个数据赋值到另一个变量,id()检测两个变量的id值(内存的十进制值)
a = 1
b = a

print(b)
# a和b的id值相同的
print(id(a))  # 2511114666224
print(id(b))  # 2511114666224

# 修改a的数据,测试id值
a = 2

print(b)
# 因为改变了a的数据,内存要开辟零一份内存取存储2,id检测a和b的地址不同
print(id(a))  # 2481568153872
print(id(b))  # 2481568153840


# 2. 可变类型:列表
aa = [10, 20]
bb = aa

print(bb)

print(id(aa))  # 2656106836032
print(id(bb))  # 2656106836032

aa.append(30)

print(bb)  # [10, 20, 30]

print(id(aa))  # 3155666137152
print(id(bb))  # 3155666137152

2、 引用当作实参

# 需求:引用是否可以当作实参
"""
1. 定义函数:有形参
    1.1 访问打印形参看是否有数据
    1.2 访问心肝的id
    1.3 改变形参数据,查看这个形参并打印id,看id值是否相同
2. 调用函数 -- 把可变和不可变两种类型依次当作实参传入
"""

def test1(a):
    print(a)
    print(id(a))

    a += a
    print(a)
    print(id(a))

b = 10
test1(b)

c = [20, 30]
test1(c)

 3、 可变和不可变类型

  所谓可变类型和不可变类型是值:数据直接能够进行修改,如果能直接修改那么就是可变,否则是不可变

    可变类型:

      列表、字典、集合

    不可变类型:

      整形、浮点型、字符串、元组

 

标签:aa,bb,内存,print,内存地址,id,引用
From: https://www.cnblogs.com/yz-b/p/16706187.html

相关文章

  • Jmeter远程服务模式运行时引用csv文件的路径配置
    问题在使用jmeter过程中,本机的内存等配置不足,启动较多的线程时,可以采用分布式运行。在分布式运行的时候,jmeter会自动将脚本从master主机发送到remote主机上,所以不需要考......
  • System.Data.Linq 无法引用的问题
    参考文章 https://www.bbsmax.com/A/1O5EM0G457/已经在工程中引用了system.data.linq,但是在代码中,输入 usingSystem.Data.Linq 就报告不存在这个命名空间.修改一......
  • springboot通过注解Resource引用指定配置
    yaml配置文件中增加两个不同环境的配置:java配置文件,参考微信支付的代码:/***@author<ahref="https://github.com/binarywang">BinaryWang</a>*/@Slf4j@Config......
  • java8新特性:方法引用
    java8新特性:方法引用我们用Lambda表达式来实现匿名方法。但有些情况下,我们用Lambda表达式仅仅是调用一些已经存在的方法,除了调用动作外,没有其他任何多余的动作,在这种情况......
  • [记]Rust可变引用与不可变引用
    --->fnmain(){letmutvar=0_i32;{letp1=&mutvar;//p1指针本身不能被重新绑定,我们可以通过p1改变变量var的值*p1=1;pr......
  • 引用计数的存储
    在64位中,引用计数可以直接存储在优化过的isa指针中,也可能存储在SideTable类中。在isa里面,有一个extra_rc参数其中:rc就是retainCount引用计数的意思。则has_sidetable_r......
  • vue前端项目组件实现自动注册并且全局可引用
     1、首先创建一个组件的目录,例如图中components2、创建一个js主文件和一个存放组件的目录如global3、在js中加入图中代码,实现自动识别组件功能4、在文件入口main.js......
  • TS创建接口和接口类型数组,并统一导入后引用
    在app.ts中引用import{users,IRoute,IUser,routes}from"./data";在index.ts中统一导入后导出export*from"./routes";export*from"./users";importro......
  • angular如何引用其他组件
    原文链接:angular如何引用其他组件–每天进步一点点(longkui.site)   0.背景前面一篇文章,简单介绍过angular创建并引用组件。在实际情况开发中,情况会稍微......
  • JavaConfig和XML之间的互相引用
    JavaConfig引用JavaConfig  现在,我们临时假设PersonConfig已经变得有些笨重,我们想要将其进行拆分。当然,它目前只定义了两个bean,远远称不上复杂的Spring配置。不过......