python中的参数传递顺序

1:def func(name)

在调用是,可以通过位置传递给name,也可以通过关键字传递给name值,

Func(“xiaoming”)   或者  func(name=“xiaoming”)

 

2: def func(name=value)

默认值参数,假设在调用函数时,没有传递给name值,那么name经使用默认值,这里的name仍然可以通过位置和关键字传递值

 

3: def func(*name)

在函数调用时,那么收集任何,没有被显式匹配的非关键字参数

(注,只能匹配没有被显式匹配的参数,如果非关键字参数在传入时,已经匹配给了某个参数,则此参数就不在那么集合中)

deffunc(a,*name):print a,name

func(a=1,2,3,4)或者,func(1,2,3,4),  name只能匹配 2,3,4

 

4 def func(**name)

在函数调用时,name收集任何没有被匹配的关键参数

 

5   def func(*args,name)  或者 def func(*,name=value)  # 3.0

在参数传递时,必须以关键参数的形式将参数传递给name,即kword-only

 

6

顺序:

函数定义:

1,  位置参数  2,默认参数  3*name参数  4kwork-only参数  5**name参数

 

参数传递顺序,即调用者将参数传递给函数的顺序:

1,  非关键字位置参数,2,关键字参数

 

匹配顺序:

1,  首先匹配位置参数,将非关键参数按照位置匹配给位置参数,将前几个参数对号入座,

2,  关键字参数,按照后面的关键字的定义,一个个的对号入座

优先级问题:假设非关键字参数传递给函数后,函数能够接受非关键字参数的参数有:

1,  位置参数  2,默认参数  3*name参数

那么非关键字参数首先匹配位置参数,其次匹配默认参数,剩余的匹配*name

 

func(a,b,c=valume1,d=value2,*args,kwonly,**kwargs):

printa,b,c,d,name,args,kwonly,kwargs

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值