理解python的任意参数python如何定义参数
更新时间:2023-11-221. Python参数的定义
在Python中,定义参数需要遵循一定的规范。参数可以分为两种,一种是必须参数,一种是可选参数。在定义参数时,必须将必须参数与可选参数分开。必须参数在函数定义时要放在前面,后面才能定义可选参数。同时,对于可选参数,可以使用默认值来定义参数。以下是一个简单的函数定义的例子:
def print_info(name, age,gender='男'):
print("姓名:", name)
print("年龄:", age)
print("性别:", gender)
print_info("小明", 19)
print_info("小红", 20, "女")
在上面的例子中,我们定义了一个函数 print_info(),该函数接受三个参数,其中两个是必须参数:name和age,而gender是一个可选参数,如果不传入gender参数的话,默认值是“男”。
2. Python任意参数的定义
在Python函数中,还有一种参数是任意参数,也称为可变参数。这种参数可以传入任意数量的参数。在Python中,有两种类型的任意参数,即 *args和 **kwargs。
2.1 *args任意参数
*args表示传递参数的数量是任意的,可以传递一个或多个参数。这些参数会被收集到一个元组(tuple)中,作为第一个参数传入到函数中。
def print_info(name, age, *args):
print("姓名:", name)
print("年龄:", age)
for hobby in args:
print("爱好:", hobby)
print_info("小明", 19, "篮球", "游泳")
print_info("小红", 20, "唱歌", "跳舞", "画画")
在上面的例子中,函数print_info()中的参数args用来收集任意数量的参数,这些参数会被收集到一个元组中。这里我们可以看到,在第一次调用函数时,只传递了两个参数,但是在第二次调用函数时,传递了三个参数,但是函数print_info()仍然可以正常执行。
2.2 **kwargs任意参数
kwargs表示传递参数的数量也是任意的,但是传递的参数是以关键字(key)和值(value)的形式传递的。这些参数会被收集到一个字典(dict)中,作为第二个参数传入到函数中。
def print_info(name, age, **kwargs):
print("姓名:", name)
print("年龄:", age)
for key, value in kwargs.items():
print(key, ":", value)
print_info("小明", 19, hobby="篮球", hobby2="游泳")
print_info("小红", 20, hobby="唱歌", hobby2="跳舞", hobby3="画画")
在上面的例子中,函数print_info()中的参数kwargs用来收集任意数量的参数,这些参数会被收集到一个字典中。这里我们可以看到,在第一次调用函数时,传递了两个参数,但是在第二次调用函数时,传递了三个参数,但是函数也可以正常执行。