当前位置:   article > 正文

提升Python函数调用灵活性:参数传递类型详解_python 调用参数

python 调用参数

在这里插入图片描述

前言

Python编程中,函数参数起着非常重要的作用。函数参数允许我们向函数传递数据,并在函数内部使用这些值。Python提供了多种参数传递类型,包括位置参数、关键字参数、默认参数、可变数量的位置参数、可变数量的关键字参数。这些不同的参数传递方式使得函数调用更加灵活和可扩展。本文就来具体聊聊它们。

什么是Python传参

在 Python 中,传参是指在函数调用过程中将数据传递给函数的过程。传参允许我们向函数传递数据,以便在函数内部使用这些数据进行操作和处理。

在 Python 中,函数定义时使用的参数称为形式参数,也称为形参。形参是在函数定义过程中用来接收传递给函数的值的占位符。形参在函数体内被当作变量来使用,可以在函数体中进行操作和处理。

实际参数,也称为实参,是在函数调用时传递给函数的值或变量。实参是实际传递给函数的具体数值或对象。当我们调用一个函数时,需要为函数的形参提供相应的实参,这样函数才能执行相应的操作。

下面是一个简单的示例:

def demo(name):
    print("Hello, " + name + "!")

demo("Frica")
  • 1
  • 2
  • 3
  • 4
'
运行

在上面的例子中,name 是函数 demo 的形参。

在函数调用时,传递了实参 Frica 给函数 demo,它被赋值给形参 name,然后函数体内部使用这个值进行打印操作。

总结起来,形参是函数定义中用于接收传递给函数的值的占位符,而实参是在函数调用时实际传递给函数的具体数值或对象。形参和实参的对应关系使得函数能够处理和操作具体的数据。

五种传参类型

传参类型可以单独使用,也可以组合使用。根据需要在函数定义中灵活地选择使用这些传参类型。

以下是Python中常见的几种传参类型:

  1. 位置参数:位置参数是最常见的参数类型,通过按照参数定义的顺序提供参数值;

  2. 关键字参数:关键字参数允许使用参数的名称来指定值,而不必按照顺序提供参数;

  3. 默认参数:默认参数允许为函数的一个或多个参数提供默认值。如果在函数调用时没有提供参数值,函数将使用默认值;

  4. 可变数量的位置参数:可变数量的位置参数允许接受任意数量的位置参数。在函数定义中,使用星号(*)来指定一个可变数量的位置参数,如果没有提供额外的位置参数,args将是一个空元组(());

  5. 可变数量的关键字参数:可变数量的关键字参数允许接受任意数量的关键字参数。在函数定义中,使用双星号(**)来指定一个可变数量的关键字参数,如果没有提供额外的关键字参数,kwargs将是一个空字典({})。

位置传参

位置参数:位置参数是最常见的参数类型。当定义一个函数时,可以指定一个或多个位置参数。在调用函数时,需要按照参数的顺序提供对应的值。例如:

def demo(name, age):
    print("Hello", name, "!")
    print("You are", age, "years old.")

demo("Frica", 25)
  • 1
  • 2
  • 3
  • 4
  • 5

在上面的例子中,nameage 是位置参数,按照顺序分别提供 “Frica” 和 25 作为参数值。

关键字传参

关键字参数:关键字参数允许你使用参数的名称来指定值,而不必按照顺序提供参数。使用关键字参数可以使代码更加清晰和易读。例如:

def demo(name, age):
    print("Hello", name, "!")
    print("You are", age, "years old.")

demo(age=25, name="Frica")
  • 1
  • 2
  • 3
  • 4
  • 5

在上面的例子中,通过使用 age=25name="Frica" 来指定参数的值,而不必考虑它们的顺序。

默认传参

默认参数:默认参数允许为函数的一个或多个参数提供默认值。

如果在函数调用时没有提供参数值,函数将使用默认值。默认参数通常在函数定义中指定,并且必须要位于位置参数之后(否则会有SyntaxError异常)。例如:

def demo(name, age=18):
    print("Hello", name, "!")
    print("You are", age, "years old.")

demo("Frica")  # 使用默认值18
demo("Frica01", 25)  # 覆盖默认值
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在上面的例子中,age 参数有一个默认值 18。如果没有为 age 提供参数值,函数将使用默认值。

可变数量的位置传参

一般我们会使用 *args,当然,使用其它的变量也可以(这里的关键是 *,而不是args

可变数量的位置传参:可变数量的位置参数允许接受任意数量的位置参数。在可能不确定函数会接受多少个参数的情况下,可以使用可变数量的参数。在函数定义中,可以使用星号(*)来指定一个可变数量的位置参数。例如:

def print_info(*args):
    print(type(args))	# 输出: <class 'tuple'>
    total = sum(num for num in args)
    return total


result = print_info(1, 2, 3, 4, 5)
print(result)  # 输出:15
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在上面的例子中,print_info 函数接受任意数量的位置参数,并将它们相加。

可变数量的关键字传参

一般我们会使用 **kwargs,当然,使用其它的变量也可以(这里的关键是 **,而不是kwargs

可变数量的关键字参数传递:可变数量的关键字参数允许接受任意数量的关键字参数。在函数定义中,可以使用双星号(**)来指定一个可变数量的关键字参数。例如:

def print_info(**kwargs):
    print(type(kwargs))  # 输出: <class 'dict'>
    for key, value in kwargs.items():
        print(key, ":", value)


print_info(name="Frica", age=25, city="GuangZhou")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在上面的例子中,demo 函数接受任意数量的关键字参数,并将它们打印出来。

多种传参类型组合

def print_info(name, *args, age=18, **kwargs):
    print("Name:", name)
    print("Age:", age)
    print("Additional arguments:")
    for arg in args:
        print("-", arg)
    print("Keyword arguments:")
    for key, value in kwargs.items():
        print("-", key, ":", value)


print_info("Frica", "arg1", "arg2", age=25, city="GuangZhou", country="China")

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在上面的例子中,函数print_info接受以下参数:

  • name是一个位置参数,必须提供值。
  • *args是一个可变数量的位置参数,可以接受任意数量的额外参数。
  • age是一个具有默认值的关键字参数。
  • **kwargs是一个可变数量的关键字参数,可以接受任意数量的关键字参数。

通过调用print_info函数,并提供相应的参数,可以灵活地组合使用这些参数类型。在函数体内部,可以根据需要访问和处理这些参数。

当调用print_info函数时,输出如下:

Name: Frica
Age: 25
Additional arguments:
- arg1
- arg2
Keyword arguments:
- city : GuangZhou
- country : China
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

这个例子展示了多种传参类型的组合,包括位置参数、可变数量的位置参数、具有默认值的关键字参数和可变数量的关键字参数。读者可以根据实际的开发需求,在函数中灵活使用这些参数类型。

函数参数类型注解
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/811496

推荐阅读
相关标签