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 拥有两个参数 a 和 b,其中参数 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函数的参数传递方式有值传递和引用传递,参数的默认值可以在调用函数时不传递该参数,并且默认值的参数必须放在参数列表的最后。
