python 中参数的使用:形参实参、形参实参中*的作用、参数的混合使用

系统 248 0

python中的参数:形参实参

形参:

形式上的参数,可以理解为数学中的x,没有实际的值,通过别人赋值后才有意义。相当于变量

实参:

实际意义上的参数,是一个世纪存在的参数,可以是字符串或者数字等。

就是在函数名中定义一个形参,然后在函数调用的时候,给函数名中的形参传递一个实际的参数,这个就是实参。这样的话执行函数时就会使用参数执行相应的操作。

            
              
                def
              
              
                func
              
              
                (
              
              a
              
                )
              
              
                :
              
              
                #a是形参
              
              
                print
              
              
                (
              
              a
              
                )
              
              
 
 func
              
                (
              
              
                1
              
              
                )
              
              
                #1是实参
              
              
                #代码运行结果为:1
              
            
          

形参中*的作用:

            
              
                def
              
              
                func
              
              
                (
              
              a
              
                ,
              
              
                *
              
              args
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              a
              
                )
              
              
                print
              
              
                (
              
              args
              
                )
              
              
 
 func
              
                (
              
              
                1
              
              
                ,
              
              
                2
              
              
                ,
              
              
                3
              
              
                ,
              
              
                4
              
              
                )
              
              
                #把1传给a,把2,3,4传给*args
              
            
          

1、*args是可变参数,args接收的是一个元组;

2、**kw是关键字参数,kw接收的是一个字典;

3、在 lambda 表达式中使用 *和 **,lambda 表达式可以当作一个匿名函数。只要是函数都可以传参。

实参中*的作用

1、实参中的*号会获取可迭代对象的 key(索引/键值);

            
              
                def
              
              
                func
              
              
                (
              
              n1
              
                ,
              
               n2
              
                ,
              
               n3
              
                ,
              
               n4
              
                ,
              
               n5
              
                )
              
              
                :
              
              
                return
              
               n1
              
                ,
              
               n2
              
                ,
              
               n3
              
                ,
              
               n4
              
                ,
              
               n5

d 
              
                =
              
              
                {
              
              
                'n1'
              
              
                :
              
              
                5
              
              
                ,
              
              
                'n2'
              
              
                :
              
              
                6
              
              
                ,
              
              
                'n3'
              
              
                :
              
              
                7
              
              
                ,
              
              
                'n4'
              
              
                :
              
              
                8
              
              
                ,
              
              
                'n5'
              
              
                :
              
              
                9
              
              
                }
              
              
                print
              
              
                (
              
              func
              
                (
              
              
                *
              
              d
              
                )
              
              
                )
              
              
                # 打印得到的结果为 ('n1', 'n2', 'n3', 'n4', 'n5')
              
            
          

由于获取的是可迭代对象的 key,所以函数的形参可以为位置参数或可变参数。

2、实参中的**会获取可迭代映射的值;

            
              
                def
              
              
                func
              
              
                (
              
              n1
              
                ,
              
               n2
              
                ,
              
               n3
              
                ,
              
               n4
              
                ,
              
               n5
              
                )
              
              
                :
              
              
                return
              
               n1
              
                ,
              
               n2
              
                ,
              
               n3
              
                ,
              
               n4
              
                ,
              
               n5

d 
              
                =
              
              
                {
              
              
                'n1'
              
              
                :
              
              
                5
              
              
                ,
              
              
                'n2'
              
              
                :
              
              
                6
              
              
                ,
              
              
                'n3'
              
              
                :
              
              
                7
              
              
                ,
              
              
                'n5'
              
              
                :
              
              
                8
              
              
                ,
              
              
                'n4'
              
              
                :
              
              
                9
              
              
                }
              
              
                print
              
              
                (
              
              func
              
                (
              
              
                **
              
              d
              
                )
              
              
                )
              
              
                # 打印得到的结果为(5, 6, 7, 9, 8)
              
            
          

由于获取的是可迭代对象的值,所以函数的形参只能为关键字参数,即参数的个数和名称都是固定的。

参数的混合使用:

1、位置参数和可变参数

            
              
                def
              
              
                func
              
              
                (
              
              a
              
                ,
              
              
                *
              
              args
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              a
              
                )
              
              
                print
              
              
                (
              
              args
              
                )
              
              

func
              
                (
              
              
                1
              
              
                ,
              
              
                2
              
              
                ,
              
              
                3
              
              
                ,
              
              
                4
              
              
                )
              
              
                #把1传给a,把2,3,4传给*args
              
            
          

2、位置参数和默认参数

            
              
                def
              
              
                func
              
              
                (
              
              a
              
                ,
              
               b 
              
                =
              
              
                10
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              a
              
                )
              
              
                print
              
              
                (
              
              b
              
                )
              
              

func
              
                (
              
              
                1
              
              
                )
              
              
                #把1传给a,但是b不变
              
            
          

3、默认参数和可变参数混合使用,默认参数在可变参数的右侧 ,需要用关键字指定参数

            
              
                def
              
              
                func
              
              
                (
              
              
                *
              
              args
              
                ,
              
               a
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              args
              
                )
              
              
                print
              
              
                (
              
              a
              
                )
              
              
func
              
                (
              
              
                1
              
              
                ,
              
              
                2
              
              
                ,
              
              
                3
              
              
                ,
              
              a 
              
                =
              
              
                10
              
              
                )
              
            
          

更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请请扫描上面二维码支持博主1元、2元、5元等您想捐的金额吧,狠狠点击下面给点支持吧

发表我的评论
最新评论 总共0条评论