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

Python函数传参-参数类型和传参方式详解

发布时间:2023-06-23 18:07:33

Python作为一种高级编程语言,在使用函数传参时有着非常丰富的语法和方法。对于初学者来说,这些语法和方法可能有些复杂。参数类型和传参方式是Python函数传参中的两个核心概念。本文将对这两个概念分别进行详解。

参数类型

Python函数的参数可以分为四种类型,分别是位置参数、默认参数、可变参数和关键字参数。

1. 位置参数

位置参数是函数定义时指定的参数,实参传递时必须按照位置顺序一一对应。例如下面代码中的add函数就是一个位置参数的例子。

def add(a,b):
    return a+b
print(add(1,2))

输出结果为3。

2. 默认参数

默认参数是指在函数定义时指定了参数的默认值,如果在函数调用时没有传递参数,则使用默认值。例如下面代码中的add函数就是一个默认参数的例子。

def add(a,b=1):
    return a+b
print(add(1)) # 输出结果为2

在调用add函数时,只传入一个参数1,因为b有默认值,所以b的值为1,所以输出结果为2。

3. 可变参数

可变参数指的是在调用函数时可以传递任意个数的位置参数,这些位置参数在函数内部会组成一个元组。例如下面代码中的add函数就是一个可变参数的例子。

def add(*args):
    result = 0
    for i in args:
        result += i
    return result
print(add(1,2,3,4,5)) # 输出结果为15

在调用add函数时,传递了任意个数的位置参数,这些位置参数在函数内部会组成一个元组args。

4. 关键字参数

关键字参数指的是在调用函数时使用键值对的方式传递参数,这些参数在函数内部会组成一个字典。例如下面代码中的add函数就是一个关键字参数的例子。

def add(**kwargs):
    result = 0
    for i in kwargs.values():
        result += i
    return result
print(add(a=1,b=2,c=3)) # 输出结果为6

在调用add函数时,使用键值对的方式传递参数,这些参数在函数内部会组成一个字典kwargs。

传参方式

Python函数传参有两种方式,分别是值传递和引用传递。

1. 值传递

值传递指的是在调用函数时,如果参数是不可变对象(例如数字、字符串、元组),那么在函数内部对参数进行修改,不会影响到函数外部的变量值。

例如下面代码中的add函数就是一个值传递的例子。

def add(a):
    a += 1
    print(a)
x = 1
add(x)
print(x)

在调用add函数时,传递了一个不可变对象x,然后在函数内部对x进行了修改,但是函数外部的x的值并没有被修改。

2. 引用传递

引用传递指的是在调用函数时,如果参数是可变对象(例如列表、字典、集合),那么在函数内部对参数进行修改,会影响到函数外部的变量值。

例如下面代码中的add函数就是一个引用传递的例子。

def add(lst):
    lst.append(1)
    print(lst)
x = [1,2,3]
add(x)
print(x)

在调用add函数时,传递了一个可变对象x,然后在函数内部对x进行了修改,函数外部的x的值也被修改了。

总结

Python函数传参是Python编程中的一项核心技能。理解Python函数传参的四种参数类型以及两种传参方式,能够帮助我们更好地编写Python函数程序。在实际开发过程中,我们需要根据实际情况选择不同的参数类型和传参方式,以便实现更加灵活和高效的程序。