c语言编程笔录

首页 >   > 笔记大全

笔记大全

理解python的任意参数python如何定义参数

更新时间:2023-11-22

1. 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用来收集任意数量的参数,这些参数会被收集到一个字典中。这里我们可以看到,在第一次调用函数时,传递了两个参数,但是在第二次调用函数时,传递了三个参数,但是函数也可以正常执行。