Python---- 第 6 章 函数

15 阅读2分钟

6.3 函数参数的传递

通常情况下,定义函数时设置的参数称为形式参数,简称为形参;调用函数时传入的参数称为实际参数,简称为实参。函数参数的传递是指将实参传递给形参的过程。函数参数的传递可以分为位置参数的传递、关键字参数的传递、默认参数的传递、参数的打包与解包以及混合传递。

6.3.1 位置参数的传递

当调用函数传递位置参数时,实参会按照位置顺序依次传递给对应的形参。也就是说,第 1 个实参会传递给第 1 个形参,第 2 个实参会传递给第 2 个形参,以此类推。注意,实参的数量和位置必须与函数定义中位置参数的数量和位置保持一致,否则会导致解释器运行时出现异常信息,或者错误的参数匹配。

例如,定义一个用于获取两个数之间较大值的函数 get_max (),调用 get_max () 函数,通过位置参数的方式传递实参,示例代码如下:

def get_max(a, b):
    if a > b:
        print(a, "是较大的值!")
    elif a < b:
        print(b, "是较大的值!")
    else:
        print("两个值一样大!")

get_max(8, 5)

以上函数执行后会将第一个实参 8 传递给第一个形参 a,第二个实参 5 传递给第二个形参 b。

运行代码,结果如下所示:

8 是较大的值!

6.3.2 关键字参数的传递

当函数有较多参数时,想要记住每个参数的位置和含义可能会很困难,因此按照位置参数的方式传递参数并不是一个好的选择。此时,可以使用关键字参数的方式传递参数。关键字参数的传递中,通过使用 “形参 = 实参” 的格式将实参与对应的形参关联起来,根据具体的参数名传递参数,从而避免记忆参数位置的困扰。

例如,定义一个用于连接设备的函数 connect (),调用 connect () 函数,通过关键字参数的方式传递实参,示例代码如下:

def connect(ip, port):
    print(f"设备{ip}:{port}连接!")

connect(ip="127.0.0.1", port=8080)

以上代码执行后会将 "127.0.0.1" 传递给与其关联的形参 ip,将 8080 传递给与其关联的形参 port。

运行代码,结果如下所示:

设备 127.0.0.1:8080 连接!