#表示元组,**表示字典。 **字典参数放在元组参数后面,且放在参数列表最后
def demo(num, *nums, **person):
# nums是一个元组; person是一个字典
print(num) # 1
print(nums) # (2, 3, 4, 5)
print(person) # {‘name’: ‘小明’, ‘age’: 18}
demo(1, 2, 3, 4, 5, name=“小明”, age=18)
实参(argument)——全称为"实际参数"是在调用时传递给函数的参数。 实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。
形参(parameter)——全称为"形式参数" 由于它不是实际存在变量,所以又称虚拟变量。是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数.在调用函数时,实参将赋值给形参。因而,必须注意实参的个数,类型应与形参一一对应,并且实参必须要有确定的值。
args 是 arguments 的缩写,表示位置参数;kwargs 是 keyword arguments 的缩写,表示关键字参数。这其实就是 Python 中可变参数的两种形式,并且 *args 必须放在 **kwargs 的前面,因为位置参数在关键字参数的前面。
单星号(*):*agrs
将所有参数以元组(tuple)的形式导入:
def aa(param1, *param2):
print (param1)
print (param2)
aa(1,2,3,4,5)
1
(2, 3, 4, 5)
双星号(**):kwargs
双星号()将参数以字典的形式导入:
def bar(param1, **param2):
print (param1)
print (param2)
bar(1,a=2,b=3)
1
{‘a’: 2, ‘b’: 3}
此外,单星号的另一个用法是解压参数列表:
def aa(runoob_1, runoob_2):
print(runoob_1, runoob_2)
l = [1, 2]
aa(*l)
1 2