python函数参数的种类有哪些

  • Post category:Python

Python中函数参数主要分为四种:位置参数、默认参数、可变参数和关键字参数。下面分别进行详细介绍。

位置参数

位置参数是指函数调用时按照位置依次传入的参数,它们与函数定义时参数的位置一一对应,如果位置不对应会导致程序出错。例如:

def add(x, y):
    return x + y

print(add(1, 2))  # 3

在调用函数add时,按照位置依次传入参数1和2,对应到函数定义时的参数x和y,返回结果3。

默认参数

默认参数是指在函数定义时就给参数一个默认值,在调用函数时如果不传入该参数就将默认值作为参数值。默认参数可以有效地减少函数参数的个数,增加程序的可读性。例如:

def add(x, y=1):
    return x + y

print(add(1))  # 2
print(add(1, 2))  # 3

在函数定义时,参数y默认值为1,调用函数时如果只传入一个参数x,则参数y使用默认值1;如果传入两个参数x和y,则使用传入的参数y值。

可变参数

可变参数是指传入的参数个数可以是任意个,在函数内部可以将这些参数转换为所需要的元组或列表类型。可变参数分为两种:args和kwargs。args表示可接受任意个数的位置参数,**kwargs表示可接受任意个数的关键字参数。例如:

def add(*args):
    result = 0
    for i in args:
        result += i
    return result

print(add(1, 2, 3))  # 6

在函数定义时,参数前面加*表示可接受任意个数的位置参数,参数args被转化为包含所有传入参数的元组。在函数体内部使用循环将所有参数相加返回结果。

def print_info(**kwargs):
    for k, v in kwargs.items():
        print("{0}:{1}".format(k, v))

print_info(name="张三", age=18, gender="男")

在函数定义时,参数前面加**表示可接受任意个数的关键字参数,参数kwargs被转化为包含所有传入参数的字典。在函数体内部循环输出所有参数的键值对。

关键字参数

关键字参数是指在调用函数时,以键值对的形式传递参数,不需要按照位置依次传参。关键字参数可以使用默认参数来实现。例如:

def print_info(name, age, gender="男"):
    print("{0},{1}岁,{2}。".format(name, age, gender))

print_info(name="张三", age=18)  # 张三,18岁,男。
print_info(name="李四", age=20, gender="女")  # 李四,20岁,女。

在调用函数时,按照关键字参数的形式传递参数,参数名与参数值之间使用等号=连接。

综上所述,Python函数中有四种参数:位置参数、默认参数、可变参数和关键字参数,它们各有特点,并可以相互组合使用。在实际工作中,根据不同的需求采用不同的参数类型能够让程序更加灵活和高效。