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

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函数参数的传递方式有:传递不可变对象、传递可变对象、使用默认参数、使用可变参数。在函数调用过程中,根据参数类型和是否有默认值,可以选择合适的传递方式。