可变对象与不可变对象的传递

本文深入探讨了Python中不可变对象如字符串、元组和数字,以及可变对象如列表、字典和集合的区别。解析了不可变对象在赋值时重新生成新对象,而可变对象则直接修改内部值的特点。同时,介绍了函数参数传递机制,包括*args用于接收所有未命名参数,**args用于接收所有命名参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在python中,string,tuples,和numbers是不可更改的对象,而list,dict,set等则是可以修改的对象。

不可变类型:变量赋值a = 5 后再 赋值 a = 10,这里实际是新生成一个int值对象10,再让a指向它,而5被丢弃,不是改变a的值,相当于新生成了a。

可变类型:变量赋值la=[1,2,3,4]后再赋值la[2]=5则是将list la的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。

不可变对象,传递的是对象的值,不是对象本身,如果修改值,修改的是另一个复制的对象,不会影响原来对象的本身

可变对象,传递对象自己。函数内部如果修改值会影响对象本身。

------------------------------------------------------------------------------------------------------------------------------------------------------------

*args :是接受所有未命名的参数(关键字)

**args:是接受所有命名的参数(带关键字的)

def num(a,b,*args,**args2):
    print(a)
    print(b)
    print(args)       #args 是一个元组 ('c', 'd')
    print(args2)      #字典数据类型 {'age': 4, 'sex': '男生'}
num('a','b','c','d',age=4,sex='男生')

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值