Python函数参数类型及可变参数
参数类型
-
位置参数
根据形参位置顺序进行实参传递;
-
关键字参数
根据形参名进行实参传递;
-
默认参数
给形参设置默认值,实参与默认值不符时需要覆盖传递;
可变参数
*args和**kwargs可变参数
1、将可变的位置参数打包成tuple给函数体调用
def function(*args): # 可变的位置参数 print(args, type(args)) function(20) function(20, 30) 运行结果: (20,) <class 'tuple'> (20, 30) <class 'tuple'>
2、将可变的关键字参数打包成dict给函数体调用
def function(**kwargs): # 可变的关键字参数 print(kwargs, type(kwargs)) function(a=2, b=3) 运行结果: {'a': 2, 'b': 3} <class 'dict'>
3、既有可变的位置参数也有可变的关键字参数,可变的位置参数位于关键字参数之前
4、将一个字典传递给函数,在实参前加两个星号
def connect(**kwargs): print(kwargs) config = {'server': 'localhost', 'port': 3306, 'user': 'root', 'password': 'PythonS'} connect(**config)