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

Python函数中的参数与实参传递详解

发布时间:2023-10-21 04:46:47

函数是一组可重复使用的代码块,使用参数(parameters)和实参(arguments)来接收输入并执行特定的任务。在Python中,参数是在函数定义时指定的变量,而实参是在函数调用时传递给函数的值。

Python函数的定义如下:

def function_name(parameters):

    # 函数体

    # 代码块

在函数定义中,参数是用括号括起来的变量集合。这些变量充当函数的占位符,表示函数在执行时可以接收和处理的数据。函数体是包含一系列语句的代码块,这些语句定义了函数要执行的任务。

在函数调用时,需要向函数传递实参。实参是传递给函数的具体值,在函数调用的圆括号内指定。函数调用的语法如下:

function_name(arguments)

参数和实参可以是任意类型的数据,包括数字、字符串、列表等。当函数被调用时,实参的值被赋给函数定义中的参数,函数执行时可以使用这些参数的值。

Python中的参数传递有以下几种方式:

1. 位置参数(Positional Arguments):按照参数的位置顺序,将传递给函数的实参与函数定义中参数的顺序进行匹配。位置参数的数量必须与函数定义中的参数的数量相等。

示例:

def greet(name, age):

    print("Hello, my name is", name)

    print("I am", age, "years old")

greet("John", 25)

输出:

Hello, my name is John

I am 25 years old

2. 关键字参数(Keyword Arguments):通过指定参数名和值的方式传递实参。这种方式可以根据参数的名字来传递实参,而不需要按照参数的位置顺序一一匹配。

示例:

def greet(name, age):

    print("Hello, my name is", name)

    print("I am", age, "years old")

greet(age=25, name="John")

输出:

Hello, my name is John

I am 25 years old

3. 默认参数(Default Arguments):在函数定义时,可以为某些参数指定默认值。如果调用函数时没有提供实参,默认值将被使用。默认参数可以大大简化函数的调用。

示例:

def greet(name, age=30):

    print("Hello, my name is", name)

    print("I am", age, "years old")

greet("John")

输出:

Hello, my name is John

I am 30 years old

greet("David", 25)

输出:

Hello, my name is David

I am 25 years old

4. 可变参数(*args):有时候,我们希望能够接受任意数量的参数。可变参数允许我们向函数传递不定数量的实参。在参数名前加上星号(*)可以使参数成为可变参数。

示例:

def greet(*names):

    for name in names:

        print("Hello,", name)

greet("John", "David", "Emily")

输出:

Hello, John

Hello, David

Hello, Emily

5. 关键字可变参数(**kwargs):除了可变参数,还有关键字可变参数,它接受任意数量的关键字参数。在参数名前加上两个星号(**)可以使参数成为关键字可变参数。

示例:

def greet(**person):

    for key, value in person.items():

        print(key, ":", value)

greet(name="John", age=25, city="New York")

输出:

name : John

age : 25

city : New York

在Python中,参数和实参的传递是通过引用传递的。这意味着在函数内部对参数的修改会反映在函数外部。

示例:

def add_one(number):

    number += 1

n = 5

add_one(n)

print(n)

输出:

5

在这个例子中,变量n的值在函数调用后并未发生变化。这是因为在函数内部,参数number是一个新的变量,它保存的是传递给函数的值的副本。所以在函数内部对参数的修改并不会对函数外部的变量产生影响。

总结起来,函数参数是在函数定义时指定的变量,用于接收传递给函数的值。实参是在函数调用时传递给函数的具体值。Python中的参数传递有多种方式,包括位置参数、关键字参数、默认参数、可变参数和关键字可变参数。在Python中,参数和实参的传递是通过引用传递的。