python3函数的可变参数与不可变参数

Python3 的六个标准数据类型中:

  • 不可变数据(四个):Number(数字)、String(字符串)、Tuple(元组)、Sets(集合);
  • 可变数据(两个):List(列表)、Dictionary(字典)。

不可变数据减少了重复数据的内存消耗,但同时重新赋值时,需要重新开辟内存空间。

a = 10

b = 20

def switch(num1,num2):

       print('before num1:%s num2:%s'%(num1,num2))

  num1,num2 = num2,num1

  print('before num1:%s num2:%s'%(num1,num2))

switch(a,b)

调用switch函数后,a和b的值并没有发生改变,函数改变的只是内部局部变量的地址,如图:

a = 30

当对a重新赋值时,python会先创建值对象30,然后将a的地址指向30,值对象10可能变成垃圾被回收,如图:

a = [90]

def add(v_list):

  v_list.append(100)

列表a调用函数add后,添加了100,此时a已经改变,因为a是可变参数,如图:

 

转载于:https://www.cnblogs.com/render-inside/p/8962759.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值