python使用*和**传参的用法

1.先介绍一下python函数的参数

有两种,形参和实参。

形参是函数定义的时候,括号里面的参数

实参是函数调用的时候,实际传递的参数

2.形参的分类

  • 位置参数,其中a,b,c是位置参数

  • def func1(a,b,c):
        print(a+b+c)

  • 默认参数,注意默认参数要放在位置参数后

  • def func2(a,b,c=1):
        print(a+b+c)
  • 动态参数

    1. *args,表示接受所有的位置参数的动态传参

    2. **args,表示接受关键字的动态传参,接收到的所有传参,被处理成字典

    顺序:位置参数,*args,关键字参数,**args

  • def func3(a,b,c=1,*args,**argss):
        print(a+b+c)
        print(*args,**argss)

3.实参的类型

  • 位置参数,按照位置的顺序传参

  • def func1(a,b,c):
        print(c,b,a)
    #只能输入3个参数,多了少了会报错
    #此时按照位置进行传参,a=1,b=2,c=3
    func1(1,2,3)
    #打印3 2 1
  • 关键字参数,按照参数的名字进行传递

  • def func2(a,b,c=1):
        print(a,b,c)
    
    #关键字实参的顺序可以调整,只要同函数的形参的变量名对应上即可
    func2(b=5,a=6,c=2)
    #打印6 5 2
    
    #有默认值的变量可以不传
    func2(b=5,a=6)
    #打印6 5 1
  • 混合参数

    顺序:位置参数必须放前面,关键字参数放后面。

  • def func3(a,b,c=1,*args,**argss):
        print(a,b,c)
        print(args,argss)
    
    
    func3(1,2,3,4,5,6,7,d=5,e=6,f=7)
    #输出
    1 2 3
    (4,5,6,7) {'d':5,'e':6,'f':7}
    
    #原理,先位置参数,a=1,b=2,c=3 ,然后多出来的位置参数作为元组传给arg
    #多出来的关键字参数传给argss
    
    #函数用来接收不确定个数和类型的变量,就可以采用这种方式
    
    #不传多的参数
    func3(1,2,3)
    #输出
    1 2 3
    (){}
    


总结*号的用途:

1.如果是在形参的位置,只能最后一个参数使用。代表可以传多个数据,先分配给函数的位置参数,后面多参数的会被当成一个元组


2.如果是在实参的位置,使用*(元组变量),那么会将这个变量中的每一个数据当做一个参数

def func(a,b,c):
    print(a,b,c)


list=[1,2,3]
#将list中的元素当做元组的方式传递
func(*list)
#输出1 2 3
dictc={'a':1,'b':2,'c':3}
func(*dictc)
#把字典的键当做元组传入函数,输出字典的键 a,b,c




总结**号的用途,

1.如果是在形参的位置,只能最后一个参数使用,传入的实参是键值对格式,传入后被当成一个字典

 

2.如果是在实参的位置,需要使用**(字典变量),代表传入的参数为一个字典类型,可以直接传

   字典格式的数据a:1,b:2,也可以使用a=1,b=2这样的键值对来传入,实参不需要放在最后


 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值