Python 函数参数相关

Python 函数参数相关

自己做的笔记,初学python,难免有错误。

一、关键字参数

在调用函数时,位置参数只能用在关键字参数之前。使用了关键字参数,之后的参数只能用关键字参数。关键字参数顺序可以打乱。

def test(a, b, c):
    pass
       
tes(5, b=10, c=15)

二、参数默认值

定义函数时,使用参数默认值,要放在形参列表的最后(虽然也可以放在一星参数的前面但是没有意义)。如果形参列表有收集关键字参数,则收集关键字参数放在最后。

def test(x, y, z=10, **scores):
    pass
    
def test(x, y, z=10,*book, **scores): # 这样使用不会报错,但没有意义
    pass                            #因为调用时,z还必须得传入值。

三、参数收集(个数可变的参数)

1.一星参数可以放在形参列表任意位置。调用函数时,一星参数前面的参数必须用位置参数,后面的必须用关键字参数。

def test(a, *b, c):
    print(a, b,c)
       
test(1,2,3,c=4)  # 输出结果 1 (2,3) 4

2.二星参数(收集关键字参数)必须放在形参列表的最后。

四、逆向参数收集

逆向收集,可以用列表、元组、字典的方式给函数传入参数。列表、元组需要在变量前面加一个星,字典加俩星。
1、列表、元组

def foo(a, *b, c):      # 上面说过, 因为c在*b收集参数之后
       print(a, b, c)   # 调用时必须用关键字参数传入参数
     
my = (1, 2, 3)
foo(*my, c=4)  # 输出  1 (2, 3) 4
foo(1, *my, c=4)  # 输出 1 (1, 2, 3)  4

2、字典

def bar(book, price, desc):
    pass
	  
my_dict = {'price': 90, 'book': 'python', 'desc': '不错' }
bar(**my_dict)  #字典中指定参数的顺序可以打乱

如果字典只指定了部分参数,剩余的以字典指定的参数(下面例子中的book)为分界线,前面的可以用位置参数或关键字,后面的必须用关键字参数。

def bar(start, book, middle, price, desc, end):
    pass

my_dict = {'price': 90, 'book': 'python讲义', 'desc': '不错' }
bar('开始', **my_dict,middle='中间', end='结束')  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值