def print_value(a,b,c=12,*args,**kwargs):
print(a)
print(b)
print(c)
print(args)
print(kwargs)
print("="*30)
#必需参数:必需参数以正确的顺序传入参数,调用时的数量必需和声明时一样
print_value(10,20) #验证默认的参数传入值
#关键字参数:参数不需要按照顺序传入参数,调用函数时带上形参的关键字,定义时使用**kwargs
print_value(b=10,a=20) #验证不给默认参数传入值
#默认参数:直接给形参赋默认值,如果需要修改默认值再改变
print_value(10,20,c=25)#验证改变默认的参数的值
print_value(a=10,b=20,c=25)#验证改变默认的参数的值
"""
如果函数参数列表中既存在缺省参数,又存在不定长参数:
1、当调用函数时,传入的参数个数小于或者等于必须参数与默认参数的个数时,可以
使用以下三种方式传入参数:
1.1 必需参数:必需参数以正确的顺序传入参数,调用时的数量必需和声明时一样
1.2 关键字参数:参数不需要按照顺序传入参数,调用函数时必须带上形参的关键字
1.3 默认参数:直接给形参赋默认值,如果需要修改默认值再改变
2、当调用函数时,传入的参数个数大于必须参数与默认参数的个数时:
2.1 默认参数必须传入相应的值,否则报错
2.2 多余的非关键字参数,函数调用时会放在元组参数args中
2.3 多余的关键字参数,以键值对形式存在,函数调用时会放在字典参数kwargs中
"""
"""
不定长参数:
1、在函数参数列表中,参数前增加一个*,可以接收元组
2、在函数参数列表中,参数前增加两个*,可以接收字典
3、多余的非关键字参数,函数调用时会放在元组参数args中
4、多余的关键字参数,函数调用时会放在字典参数kwargs中
"""
print_value(10,20,30,40,50,60)
print_value(1,2,3,4,5,name="Tom",age=18)
"""
**不定长参数列表拆包过程:**
如果需要向函数不定长参数列表中传入列表或者字典:
1、存放列表的参数前需要加*
2、存放字典的参数前需要加**
"""
A_List = ["a","b","c"]
B_Dict = {"name":"Rose","gender":True}
print_value(1,32,22,A_List,B_Dict)
print_value(1,32,22,*A_List,**B_Dict)
"""
注意:
1、带有默认值的参数一定位于参数列表的最后面,当存在多个
缺省参数的函数被调用时,可以单独指定某个缺省参数的值
2、如果参数中既有列表型参数或元组型参数(带*的参数)也有字典型
参数(带**号的参数),则带*的参数应该写在带**号的参数的前面
"""
python函数参数列表_缺省参数&不定长参数
最新推荐文章于 2024-09-05 19:44:26 发布