欢迎访问宙启技术站
智能推送

Python函数参数有哪些类型?

发布时间:2023-06-10 17:00:50

Python的函数参数可以分为以下几类:

1.必需参数

必需参数指的是在调用函数时必须传入的参数。如果缺少这些参数,函数会抛出TypeError异常。例如:

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

在这个函数中,x和y都是必需参数。如果调用add函数时没有传入这些参数,如下所示:

add()

则会抛出TypeError异常。

2.默认参数

默认参数指的是在定义函数时就已经给定了默认值的参数。如果调用函数时没有为这些参数传入值,则会使用默认值。例如:

def multiply(x, y=2):
    return x * y

在这个函数中,y参数的默认值为2。如果在调用multiply函数时没有传入y的值,如下所示:

multiply(3)

则y参数会使用默认值2,这个函数返回的值为6。如果传入了y的值,如下所示:

multiply(3, 4)

则会计算出3 * 4 = 12。

需要注意的是,给定默认参数时,所有位置在它后面的参数都必须有默认值。例如:

def presonal_info(name, age, gender='男', address):
    print('Name:', name)
    print('Age:', age)
    print('Gender:', gender)
    print('Address:', address)

在这个函数中,gender是一个有默认值的参数,而address没有默认值。这是不合法的,会抛出SyntaxError异常。如果需要传入一个没有默认值的参数,可以采用以下方式:

def presonal_info(name, age, address, gender='男'):
    print('Name:', name)
    print('Age:', age)
    print('Gender:', gender)
    print('Address:', address)

在这个函数中,address是一个没有默认值的参数,而gender有默认值。这样就可以避免出现SyntaxError异常。

3.可变参数

可变参数指的是传入函数中的参数个数是可变的。Python中的可变参数有两种,分别是:*args和**kwargs。

*args

*args是一个可变参数列表。它表示任意数量的参数,可以是0个或多个。例如:

def sum(*args):
    result = 0
    for x in args:
        result += x
    return result

在这个函数中,*args表示任意数量的参数。sum函数可以接受0个或多个参数,将这些参数相加并返回结果。

**kwargs

**kwargs表示关键字参数。它表示任意数量的关键字参数,可以是0个或多个。例如:

def personal_info(name, age, **kwargs):
    print('Name:', name)
    print('Age:', age)
    for k, v in kwargs.items():
        print('%s: %s' % (k, v))

在这个函数中,**kwargs表示任意数量的关键字参数。personal_info函数可以接受0个或多个关键字参数,并打印出所有传入的参数。

4.参数组合

以上介绍的参数类别可以组合使用。例如:

def personal_info(name, age, *args, **kwargs):
    print('Name:', name)
    print('Age:', age)
    for x in args:
        print(x)
    for k, v in kwargs.items():
        print('%s: %s' % (k, v))

在这个函数中,既有必需参数和默认参数,也有可变参数列表和关键字参数。这个函数可以接受任意数量和类型的参数。需要注意的是,参数的传递顺序是必需参数、默认参数、可变参数列表和关键字参数。也就是说,如果想要传递参数组合中的可变参数列表和关键字参数,需要在必需参数和默认参数之后。

总之,Python函数参数可以分为必需参数、默认参数、可变参数和参数组合。熟练掌握这些参数的使用方法对于编写Python程序非常重要。