一、函数的参数
若函数中的所实现的需求涉及到一些未知项参与运算(这些未知项需要函数的调用者来决定),就可以将此未知项设置为参数。
位置参数【又称必选参数】
传递参数的顺序与定义的顺序有关,必须按照定义的顺序来进行传递。传递参数的数量与参数的数量必须保持一致。
关键字参数
指函数调用的时候,可以通过"键-值"的形式来加以指定,不再需要与形式参数的位置完全一致,清除位置关系。
注意:当出现位置参数与关键字参数的时候,需要将位置参数写在关键字参数前面
默认参数
定义函数的时候,我们可以给参数提供默认值,调用函数的时候可以传递此参数
可以不传,当传递此参数的时候,函数则使用传递的参数,若不传递则使用默认值。
优点:方便函数的调用
注意:
1.若默认参数与位置参数同时存在的时候,位置参数要写在默认参数的前面
2.给定默认参数的时候,默认参数需要指向不可变对象。
二、不定长参数
在Python中,还可以定义不定长参数。不定长参数也称可变,即传入函数中的实际参数可以是任意多个。
在定义不定长参数时,有两种形式:
1.包裹位置参数:
使用:*变量名 (一般用:*args)
功能:可以收集除了必选参数以外剩余的位置参数,按照元组来进行处理
2.包裹关键字参数:
使用:**变量名 (一般用:**kwargs)
功能:收集除定义的变量的关键字参数之外,剩余关键字参数。
包裹关键字参数只处理剩余的关键字参数,收集作为字典来进行处理。
# *args
def demo(*args):
return args
a1 = demo("a","b","c","d")
print(a1) # ('a', 'b', 'c', 'd')
print(type(a1)) # <class 'tuple'>
# **kwargs
def demo(**kwargs):
return kwargs
a1 = demo(a="A",b="B",c="C",d ="D")
print(a1) # {'a': 'A', 'b': 'B', 'c': 'C', 'd': 'D'}
print(type(a1)) # <class 'dict'>