python学习笔记-tip18(不同参数类型组合)

现在,我们也已经学习了python中的不同的参数类型

位置参数

默认参数

可变参数

关键字参数

命名关键字参数
这五种参数其实可以组合使用

但是 他们的顺序必须按照下方的顺序来

  • 位置参数(必选参数)
  • 默认参数
  • 可变参数
  • 命名关键字参数
  • 关键字参数

必须按照上方的顺序来,否则就会出错

按照上方的规则来,我们看下示例

    def student(name,age=6,*habit,city,**other):
          print(name,age,habit,city,other)

上方的参数类型依次为:
必选参数(位置参数)、默认参数、可变参数、命名关键字参数(也可以当做位置参数)、关键字参数
我们调用一下试试

      student('xiaoming',6,'play basketball',city='beijing',gender='male')

输出结果为

    xiaoming 6 ('play basketball') beijing {'gender'='male'}

具体代码及处理结果图如下


00.png
需要注意的是
  • 当「命名关键字参数」前边已经有「可变参数」时,可以将,*,省略掉
  • 「命名关键字参数」的输出其实跟「位置参数」的输出很像,就是内容
  • 而「关键字参数」的输出则是dict类型,即{‘key’='value'}表示方式

我们再举几个例子,来一起回顾一下

示例一

      def function1(a,b,c=0,*args,**keyword):
            print('a=',a)
            print('b=',b)
            print('c=',c)
            print('args=',args)
            print('keyword=',keyword)

解释一下参数:
a、b都是位置参数
c是默认参数
*args是可变参数
**keyword是关键字参数

那么我们推理下

  • 如果我们调用这个函数

        function1(1,2,3,4,5,6,name='count')
    

应该怎么输出呢

      a= 1
      b= 2
      c= 3
      arg= (4,5,6)
      keyword= {'name'='count'}

请看实际输出效果


  • 如果我们这么调用呢?

      function1(1,2)
    

那么其实更简单了

    a= 1
    b= 2
    c= 0
    arg= ()
    keyword= {}
  • 这样呢?

      function1(1,2,name='count')
    

会这么输出

    a= 1
    b= 2
    c= 0
    args= ()
    keyword= {'name'='count'}

实例效果图如下


这样是不是清晰多了呢?

总结一下

函数的五种参数其实各有各的用处,组合起来也能够发挥很大的优势,但是我们在使用的使用一定要按照真实的需要去做,不要同时使用太多的组合,否则函数接口的可理解性很差。

你可能感兴趣的:(python学习笔记-tip18(不同参数类型组合))