python函数参数的传递方式及实例
发布时间:2023-07-03 23:27:46
在Python中,函数参数的传递方式有4种:传递不可变对象、传递可变对象、使用默认参数、使用可变参数。
1. 传递不可变对象:
不可变对象包括整数、浮点数、字符串等,它们在传递给函数时,只是将对象的值进行了赋值传递,而不会改变对象本身。
示例:
def change_number(num):
num += 10
print("函数内改变后的值:", num)
number = 5
change_number(number)
print("函数外的值:", number)
输出:
函数内改变后的值: 15 函数外的值: 5
可以看到,虽然在函数内部对num进行了修改,但函数外部的number值并没有改变。
2. 传递可变对象:
可变对象包括列表、字典、集合等,它们在传递给函数时,传递的是对象的引用,可以在函数内部直接修改对象。
示例:
def change_list(lst):
lst.append(10)
print("函数内修改后的列表:", lst)
my_list = [1, 2, 3]
change_list(my_list)
print("函数外的列表:", my_list)
输出:
函数内修改后的列表: [1, 2, 3, 10] 函数外的列表: [1, 2, 3, 10]
可以看到,函数内部的修改也会影响到函数外部的对象。
3. 使用默认参数:
在定义函数时,可以给某些参数设置默认值,这样在函数调用时如果没有传递对应的参数,就会使用默认值。
示例:
def greet(name="World"):
print("Hello, " + name + "!")
greet()
greet("Alice")
输出:
Hello, World! Hello, Alice!
可以看到,第一次调用greet时,没有传递参数,所以使用了默认值;第二次调用时传递了参数,所以使用了传递的值。
4. 使用可变参数:
有时候我们希望函数能够接受不定数量的参数,可以使用可变参数。在函数定义时,在参数前面加上*,就表示可变参数。
示例:
def sum_numbers(*args):
total = 0
for num in args:
total += num
return total
print(sum_numbers(1, 2, 3))
print(sum_numbers(4, 5, 6, 7))
输出:
6 22
可以看到,sum_numbers函数接受了不定数量的参数,并且可以正确求和。
综上所述,Python函数参数的传递方式有:传递不可变对象、传递可变对象、使用默认参数、使用可变参数。在函数调用过程中,根据参数类型和是否有默认值,可以选择合适的传递方式。
