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

Python函数的参数传递方式和参数的默认值

发布时间:2023-06-29 06:36:11

Python中函数的参数传递方式有两种:值传递和引用传递。

值传递是指将实际参数的值复制一份,然后传递给函数,在函数内部对参数进行操作不会影响到实际参数。示例如下:

def change_value(x):
    x = 10

a = 5
change_value(a)
print(a)  # 输出结果为5

在上述示例中,变量 a 的值为5,当将变量 a 传递给函数 change_value 时,函数中的参数 x 被赋值为10,不会影响到变量 a 的值。

引用传递是指将实际参数的引用传递给函数,在函数内部对参数进行操作会影响到实际参数。示例如下:

def change_list(l):
    l.append(4)

my_list = [1, 2, 3]
change_list(my_list)
print(my_list)  # 输出结果为 [1, 2, 3, 4]

在上述示例中,将变量 my_list 传递给函数 change_list 时,函数中的参数 l 和变量 my_list 指向同一个列表,当在函数内部对参数 l 进行操作时,会影响到变量 my_list

除了传值和传引用的方式,Python还支持参数的默认值。当函数的参数具有默认值时,在调用函数时可以不传递这个参数,函数将使用默认值来进行处理。示例如下:

def sum_nums(a, b=0):
    return a + b

print(sum_nums(2, 3))  # 输出结果为5
print(sum_nums(2))  # 输出结果为2

在上述示例中,函数 sum_nums 拥有两个参数 ab,其中参数 b 设置了默认值为0,当调用函数时只传递一个参数时,函数将使用默认值来计算结果。

需要注意的是,默认值的参数必须放在参数列表的最后,并且默认值不会被修改。示例如下:

def say_hello(name, greeting="Hello"):
    greeting = greeting.upper()
    return f"{greeting}, {name}!"

print(say_hello("Alice"))  # 输出结果为 "HELLO, Alice!"
print(say_hello("Bob", "Hi"))  # 输出结果为 "HI, Bob!"

在上述示例中,调用函数时可以通过传递参数来修改默认值,但是在函数内部对参数的修改不会影响到默认值的值。

总结来说,Python函数的参数传递方式有值传递和引用传递,参数的默认值可以在调用函数时不传递该参数,并且默认值的参数必须放在参数列表的最后。