引用

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、 可变和不可变类型

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

    可变类型:

      列表、字典、集合

    不可变类型:

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

 

posted @ 2022-09-18 23:12  㞢卄BYZ  阅读(193)  评论(0)    收藏  举报