zoukankan      html  css  js  c++  java
  • 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是可变参数,如图:

  • 相关阅读:
    FastDFS的简单使用
    KindEditor的简单使用
    rpc
    SDS——动态字符串
    图的深度优先遍历和广度优先遍历
    innodb和myisam原理
    cap理论
    冒泡排序
    桥接模式
    适配器模式
  • 原文地址:https://www.cnblogs.com/render-inside/p/8962759.html
Copyright © 2011-2022 走看看