精华内容
下载资源
问答
  • import java.util.Arrays;... * 可变参数和不可变参数比较; * 基本上所有用数组做参数的方法 都可以把数组参数替换成可变参数 , 可变参数更强大 ; */ public class Test02 { public static void...
    package com.Summer_0421.cn;
    
    import java.util.Arrays;
    
    /**
     * @author Summer
     * 可变参数和不可变参数比较;
     * 基本上所有用数组做参数的方法 都可以把数组参数替换成可变参数 , 可变参数更强大 ;
     */
    public class Test02 {
        public static void main(String[] args) {
            //可变参数的影响
            int [] a={18, 79, 62, 59, 15, 39, 75, 62, 10};
            int [] a1={18, 79, 62, 59, 15, 39, 75, 62, 10};
            int [] a2={18, 79, 62, 59, 15, 39, 75, 62, 10};
            int [] a3={18, 79, 62, 59, 15, 39, 75, 62, 10};
            arr1(a,a1,a2,a3);
            arr1(12,12);
            System.out.println(Arrays.toString(a));
            arr1(19,1919);
        
    
        }
        public static void arr1(int  its,int b) {
            System.out.println("不可变参数!!");
            
        }
        
        //可变参数  默认由0或者n多个 参数构成 但是必须传参类型必须一致
        // 和不可变参数  参数列表 相同  时  以不可变参数优先
        //传递一个该类型的数组
        //不可以传递了1个或多个实参之后再传递给类型数组;
        //可变参数无法重载
        public static void arr1(int[]...its) {
            //its[0]=1;//可变参数无法重载
            System.out.println("可变参数!!");
        }
    
        
        
        
    }

     

    转载于:https://www.cnblogs.com/summerdata/p/10745333.html

    展开全文
  • 可变参数的传递:  可变参数有:列表、集合、字典. 不可变参数的传递:  不可变参数有:数字、字符串、元组. ref: https://www.cnblogs.com/toxic-antidote/p/11468363.html

     


     

    可变参数的传递:

      可变参数有:列表、集合、字典.

     

    不可变参数的传递:

      不可变参数有:数字、字符串、元组.

     

    "python不允许程序员选择采用传值还是传引用。Python参数传递采用的肯定是“传对象引用”的方式。实际上,这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值——相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象——相当于通过“传值’来传递对象。"


    Ref:  
    https://www.cnblogs.com/toxic-antidote/p/11468363.html

    https://blog.csdn.net/doris2016/article/details/82462841

    展开全文
  • 不可变数据(四个):Number(数字)、String(字符串)、Tuple(元组)、Sets(集合); 可变数据(两个):List(列表)、Dictionary(字典)。 不可变数据减少了重复数据的内存消耗,但同时重新赋值时,需要重新...

    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是可变参数,如图:

     

     

    展开全文
  • 知识点:Python中,万物皆对象。  python中不存在所谓的...所谓可变对象是指,对象的内容可变,而不可变对象是指对象内容不可变不可变(immutable):int、字符串(string)、float、(数值型number)、元组(t...

    知识点:Python中,万物皆对象。

       python中不存在所谓的传值调用,一切传递的都是对象的引用,也可以认为是传址。

    一、可变对象和不可变对象

    Python在heap中分配的对象分成两类:可变对象和不可变对象。所谓可变对象是指,对象的内容可变,而不可变对象是指对象内容不可变。

    不可变(immutable):int、字符串(string)、float、(数值型number)、元组(tuple)

    可变(mutable):字典型(dictionary)、列表型(list)

    不可变类型特点:

      看下面的例子(例1)

     

    [python] view plain copy
     
     print?在CODE上查看代码片派生到我的代码片
    1. i = 73  
    2. i += 2  


    从上图可知,不可变对象的特征没有变,变的只是创建了新对象,改变了变量的对象引用。

      看一个例子(例2)

    >>>x = 1
    >>>y = 1
    >>>x = 1
    >>> x is y
    True
    >>>y is z
    True

      如上所示,因为整数为不可变,x,y,z在内存中均指向一个值为1的内存地址,也就是说,x,y,z均指向的是同一个地址,值得注意的是,整形来说,目前仅支持(-1,100)。

      总结一下,不可变对象的优缺点。

        优点是,这样可以减少重复的值对内存空间的占用

        缺点呢,如例1所示,我要修改这个变量绑定的值,如果内存中没用存在该值的内存块,那么必须重新开辟一块内存,把新地址与变量名绑定。而不是修改变量原来指向的内存块的值,这回给执行效率带来一定的降低。

      下面看一个可变对象的例子(例3)

    m=[5,9]
    m+=[6]
    

    二、函数参数:

    Python函数参数对于可变对象,函数内对参数的改变会影响到原始对象;对于不可变对象,函数内对参数的改变不会影响到原始参数。原因在于:

    1、可变对象,参数改变的是可变对象,其内容可以被修改。

    2、不可变对象,改变的是函数内变量的指向对象。

     

    比如存在2个列表 a 和 b

    如果a=b的话, a和b的地址是相同的;如果只是想拷贝,那么就得用 a=b[:]

    参考链接:

     

    http://www.cnblogs.com/evening/archive/2012/04/11/2442788.html

    http://thomaschen2011.iteye.com/blog/1441254




    转载于:https://www.cnblogs.com/solakevon/p/6044757.html

    展开全文
  • def canshu(name,*numble): sum_1 = 0 for i in numble: sum_1 += i print('{}的和为{}'.format(name,sum_1)) canshu('小明',1,2,3) output; 小明的和为6 *
  • 函数传参的方法:  太基础了,8说了 ...一、可变参数的传递  可变参数有:列表、集合、字典 直接上代码: a = [1, 2] def fun(a): print('传入函数时a的值为:', a) a.insert(2, 3) #修改a ...
  • 不可变数据(四个):Number(数字)、String(字符串)、Tuple(元组)、Sets(集合); 可变数据(两个):List(列表)、Dictionary(字典)。 不可变数据减少了重复数据的内存消耗,但同时重新赋值时,需要...
  • python函数的可变和不可变参数

    千次阅读 2019-05-04 23:31:20
    不可变类型: a = 1 #把1赋值给a a = 2 #把2赋值a 这一过程中其实是重新创建新的值为2的对象a,原先指向1的变量a 被废弃了 可变类型: l = [1,2,3] l[0] = 99 l这一过程中只是修改而已,l 指向这个列表的变量没有...
  • 下面一段代码演示了可变与不可变默认参数的区别,通过查看内存地址以及每次函数调用之后的默认参数的变化,可以看出两段代码为什么会产生不同的结果。 #-*-coding:cp936-*- #上面一句是为了中文编码问题 #默认值只...
  • 函数传入可变类型和不可变类型参数 在 python 中,类型属于对象,变量是没有类型的: a=[1,2,3] a="静静" 以上代码中,[1,2,3] 是 List 类型,“静静” 是 String 类型,而变量 a 是没有类型,她仅仅是一个...
  • Python中“i+=i与i=i+i”的区别梳理 一、 "i+=i"执行时数据内存的变化 当num+=num执行时,num...***不可变参数的类型***有:数字、字符串、元组。 #代码1 a=100 def test(num): num+=num print("i...
  • 如果非要这样使用,可以在将aaa指向不可变对象None,在每次进行运算前进行判断: def extendlist(val, aaa=None): if aaa==None: aaa=[] print("运行前aaa的值是:",aaa,"aaa的id是:",id(aaa)) aaa.append(val) print(...
  • 无论传递的参数是可变参数还是不可变参数,只要针对参数使用赋值语句,会在函数内部修改局部变量的引用,不会影响到外部变量的引用 案例: def demo(num,num_list): print(“开始”) num = 50 num_list = [10,20,...
  • params可变参数

    2019-10-06 11:55:33
    可变参数和不可变参数对比 可变参数params只能用来修饰方法的参数,参数必须是一个一维数组 在调用时,可以传一个数组,还可以直接传参数数组的元素 在调用的时候,会自动地将这些元素封装为1个数组,并将数组...
  • Java可变参数

    2017-09-05 10:33:36
    注意:可变参数只能放在所有不可变参数之后,而且只可以定义一个可变参数,否则无法区别可变参数和不可变参数。public class Test { public static void f(Object... x){ System.out.println(x.length);
  • 可变参数和创建不可变集合可变参数案例创建不可变集合 可变参数 可变参数:形参的个数是可以变化的 格式:修饰符 返回值类型 方法名(数据类型… 变量名) { } 范例:public static int sun(int… a) { } 变量是一个...
  • 方法的参数类型已经确定,个数确定,我们可以使用可变参数。 二、可变参数定义格式 修饰符 返回值类型 方法名(数据类型... 变量名) { } 三、可变参数的注意事项 这里的变量其实是一个数组 如果一个方法有多个...
  • 可变参数:参数可变

    2019-09-25 03:59:28
    可变参数:参数可变。 格式:方法名(参数类型… 参数名) 当使用可变参数定义函数时,函数在调用时,... 可变参数与数组类型能重载,因为二者本质上是一样的 可变参数必须放在最后 转载于:https://www.cnblogs.co...
  • 方法参数 方法可以包含0个或任意个参数。方法参数用于接收传递给方法...调用这个setNameAndAge()方法时,必须有两个参数,且第一个参数必须为String,第二个参数必须为int(顺序能乱): Person ming = new Person();
  • 可变参数

    2020-10-28 16:35:16
    当方法的参数列表数据类型已经确定,但是参数的个数确定,就可以使用可变参数 使用格式:定义方法时使用 修饰符 返回值类型 方法名(数据类型… 变量名){} 可变参数的原理: 可变参数的底层就是一个数组,根据...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,838
精华内容 4,735
关键字:

不可变参数