Day2-----引用、引用做函数参数

一、引用

通过id()来查看变量的引用 

可以将id值认为是内存地址的别名

python数据值的传递用引用 

赋值运算可以改变变量的引用

# 将数据10存储在变量a中 本质:将数据10所在的内存的引用地址保存在变量a中
a=10
# 将变量a中保存的引用地址给b
b=a
# 打印变量a,b 引用中存储的值
print(a,b)
print(id(a),id(b))
print('-'*10)

my_list=[1,2,3] #将列表的引用地址给变量
my_list1=my_list #将变量中存储的引用地址给新 变量
print(my_list1,my_list)
print(id(my_list1),id(my_list))
print('-'*10)

my_list.append(4) #将4的引用保存在列表中
print(my_list,id(my_list))
print(my_list1,id(my_list1))
print('-'*10)

print(f'my_list[2]: {id(my_list[2])}')
my_list[2]=5
print(f'my_list[2]: {id(my_list[2])}')
print(my_list,id(my_list))
print(my_list1,id(my_list1))
print()
print('-'*10)

二、引用做函数参数

函数传参传递的是引用

 

my_list=[1,2,3]
print(id(my_list))
print('-'*10)

def func1(a):
    a.append(4)
func1(my_list)
print(my_list)
print(id(my_list))
print('-'*10)

# 只有改变全局变量的引用时,才才使用global

def func2():
    my_list.append(5)

func2()
print(my_list)
print(id(my_list))
print('-'*10)

def func3():
    global my_list # 修改全局变量的值
    my_list=[1,2,3]
func3()
print(my_list)
print(id(my_list))
print('-'*10)

def func4(a):
    # 对于+=,类似列表的extend 不会改变变量的引用地址
    a+=a
   # print(a)
b=10 # b是不可变类型
func4(b)
print(b)
func4(my_list)
print(my_list)
print('-'*10)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小步调LLY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值