• python3 函数参数


    1、缺省参数

    在定义一个函数的参数是给其传入一个默认的值,不传的时候用默认参数,缺省参数只能放在后面

    一个函数可以有多个缺省参数。

    def test(a, b=22)

      result = a + b

      print(result)

      return result

    test(11)

    test(22,33)

    def test1(a, b=22, c = 55)

    test1(11,c=2)   #c命名参数

    def test1(a,  d, b=22, c = 55) #参数d是必须要传的

    2、不定长参数

    如果在定义形参的时候,在变量名前面加个*,加上*的形参有特殊功能

    def add_num(a, b, *args):     (a, b 参数必须传)  #变量args有特殊作用,特殊的程度是,如果传递实参的个数大于形参的个数,剩下的给args ,如果多个值传给args那么他就是元组,当一个元组只有一个数据时间其表示为(1,)如果没有参数传给args那么他就是一个空元组,args必须放在末尾。

    eg: 

    def test (a, b, c=33, *args, **kwargs):  #**kwargs 以字典的方式存储

      print(**kwargs)     #打印出{'task':89, 'done':99}

    test(11, 22, 33, task=89, done=99)

    如果传入的多余的参数,且参数不带变量名,那么传给*args, 如果带变量名那么传给**kwargs,并且以字典方式保存

    #将输入的传入的输进行相加

    def sum_2(a, b, *args)

      result = a + b 

      for num in args:

      return result

    3、拆包,元组、字典

    A = (44, 55, 66)

    B = {'name':'laowang', 'age':18}

    def test(a, b, c,  *args, **kwargs)

      print(a)

      print(b)

      print(args)

      print(kwargs)

    test(11, 22, 33 ,A , B)   #那么a是11 b是22 c是33 args是((44,  55,  66),{'name':'laowang','age':18}) kwargs是{}

    如果 test(11, 22, 33 ,*A , **B)  # 那么a是11 b是22 c是33 args是(44,  55,  66)  kwargs是{'name':'laowang','age':18}))

    * 和 ** 表示拆包,把元组拆成一个一个的值,把字典拆为key,value

  • 相关阅读:
    Java小白集合源码的学习系列:Vector
    Java小白集合源码的学习系列:LinkedList
    707.设计双向链表
    Java小白集合源码的学习系列:ArrayList
    Leetcode动态规划【简单题】
    小白学Java:老师!泛型我懂了!
    小白学Java:包装类
    Java面向对象之异常详解
    Java面向对象之异常【一】
    浅谈Java中接口与抽象类的异同
  • 原文地址:https://www.cnblogs.com/pooopun/p/12556139.html
Copyright © 2020-2023  润新知