python疑问5:位置参数,默认参数,可变参数,关键字参数,命名关键字参数区别...

本文详细介绍了Python函数中各种参数类型的应用方法,包括位置参数、默认参数、可变参数、关键字参数及命名关键字参数等,通过具体示例展示了如何使用这些参数来增强函数的灵活性和实用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.位置参数
位置参数要求调用时传入函数的参数必须和定义时的位置和个数一致,即一一对应,不可缺省

def func(a,b):
    sum = a + b
    return sum
print(func(2,3)) //5
print(func(2)) //报错

2.默认参数
定义在位置参数后,作用是当参数缺省时,用定义的默认值替代

def func(a,b=3):
    sum = a + b 
    return sum
print(func(2,4)) //6
print(func(2))  //5

3.可变参数
在tuple或list前加一个*,构造出可变参数。接收任意个参数,包括0个。用于函数参数不确定的情况

def func(*args):
    sum = 0
    for x in args:
        sum += x
    return sum 
    
print(func(1,2,3)) //6
//将list或tuple内全部元素作为可变参数
L = [1,2,3,4]
print(func(*L)) //10

4.关键字参数
在dict前加两个*,构造关键字参数。接收任意无限制的参数,用于扩展函数的功能

def func(a,b,**kw):
    sum = a+b
    print(a,'+',b,'=',sum,kw)
func(2,3,color="black",phone="vivo")
// Out:2 + 3 = 5 {'color': 'black', 'phone': 'vivo'}

//先组装dict,再作为关键字参数传进去
desc = {'color': 'black', 'phone': 'vivo'}
func(2,3,**desc)
// Out:2 + 3 = 5 {'color': 'black', 'phone': 'vivo'}

5.命名关键字参数
命名关键字参数指定了key,将关键字参数做了一个限制。以一个作为分割。如果已经存在可变参数,那么命名关键字不需要作为分割

def func(a,b,*,color):
    sum = a+b
    print(a,'+',b,'=',sum,'color:',color)
func(2,3,color='black') // Out:2 + 3 = 5 color: black
func(2,3,color='black',phone='vivo') //报错 func() got an unexpected keyword argument 'phone'
//如果已经存在可变参数,那么命名关键字不需要*作为分割
def func(a,b,*args,color='red'):
    sum = a+b
    print(a,'+',b,'=',sum,args,'color:',color)
func(2,3,color='black') //2 + 3 = 5 () color: black
func(2,3,4,5,color='black') // 2 + 3 = 5 (4, 5) color: black
//命名关键字支持默认值
func(2,3,4,5) //2 + 3 = 5 (4, 5) color: red

注意:
参数位置排列顺序:位置参数,默认参数,可变参数,命名关键字参数,关键字参数,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值