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

Python函数的参数及其默认值

发布时间:2023-05-28 02:56:48

Python中函数的参数可以分为两类,一类是位置参数,一类是关键字参数。位置参数是按照函数定义时的参数位置来传递的,而关键字参数通过参数名来传递。

1. 位置参数

位置参数是最常见的一种参数类型,它们是按照函数定义时参数的位置来匹配传递进来的参数。下面是一个例子:

def add(a, b):
    return a + b

print(add(2, 3))  # 输出5

在上面的例子中,add函数有两个位置参数ab,通过add(2, 3)来调用函数,这里的23分别被传递给ab参数,函数返回a+b的结果5

2. 关键字参数

关键字参数是指在函数调用时,以key=value的形式来传递参数。下面是一个例子:

def greeting(name, age):
    print("Hello, my name is", name, "and I am", age, "years old")

greeting(name="Alice", age=25)

在这个例子中,greeting函数有两个关键字参数nameage,通过greeting(name="Alice", age=25)来调用函数时,我们可以看到我们提供了参数名字(nameage)和它们的对应值("Alice"25),函数将输出Hello, my name is Alice and I am 25 years old.

3. 默认参数

函数参数还可以有默认值,称为默认参数。这意味着,如果函数调用中没有提供该参数的值,则使用函数定义中的默认值。下面是一个例子:

def greeting(name, age=18):
    print("Hello, my name is", name, "and I am", age, "years old")

greeting("Bob")  # 输出Hello, my name is Bob and I am 18 years old.
greeting("Alice", 25)  # 输出Hello, my name is Alice and I am 25 years old.

在这个例子中,greeting有两个参数:nameage。当我们调用函数时,只提供了一个参数,即name。因为age有默认值18,所以函数的输出中这个参数的默认值被使用了。在第二次调用中,我们通过提供nameage参数来覆盖默认值。

4. 可变参数

有时候我们需要为一个函数传递不确定数量的参数,这时候我们可以使用可变参数。可变参数分为两种类型:不定长位置参数和不定长关键字参数。

不定长位置参数使用*args来定义,它可以接受任意数量的位置参数。下面是一个例子:

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

print(sum(1, 2, 3, 4))  # 输出10
print(sum(1, 2, 3))  # 输出6

在这个例子中,sum函数定义了一个不定长位置参数*args,这意味着它可以接受任意数量的位置参数。在函数体中,我们使用了一个for循环来遍历传递进来的参数,并将它们相加。

不定长关键字参数使用**kwargs来定义。下面是一个例子:

def print_info(**kwargs):
    for key, value in kwargs.items():
        print(key+":", value)

print_info(name="Alice", age=25, country="USA")

在这个例子中,print_info函数定义了一个不定长关键字参数**kwargs,这意味着它可以接受任意数量的关键字参数。在函数体中,我们使用了一个for循环来遍历传递进来的参数,并将它们打印出来。

5. 命名关键字参数

命名关键字参数是在定义函数时,指定必须使用关键字形式传递的参数。命名关键字参数像其他参数一样需要限定类型,并且它们必须在位置参数后面。命名关键字参数使用一个单独的*作为分隔符,它们通常用于可选的附加选项。下面是一个例子:

def func(a, b, *, c, d):
    print(a, b, c, d)

func(1, 2, c=3, d=4) # 输出1 2 3 4

在这个例子中,我们定义了一个名为func的函数,并指定了两个位置参数ab,以及两个命名关键字参数cd。注意到在参数列表中,*之后有任意数量的命名关键字参数。

总结:

在Python中,函数的参数可以分为位置参数、关键字参数、默认参数、可变参数和命名关键字参数。了解每个参数类型都有什么作用和如何使用它们是编写好的Python代码的关键。