详解python 函数传值方法

  • Post category:Python

Python 函数传值有两种方法:传递对象的引用和传递对象的值。在函数内部修改对象的方式取决于这个对象在函数中是通过引用还是通过值传递的。

传递对象的引用

在 Python 中,对象的变量是其地址的引用。当我们传递一个可变对象作为参数时,函数中的更改将反映在函数外部。

下面是一个传递可变对象的示例:

def change_list(lst):
    lst.append(4)
    print("List inside function:", lst)

my_list = [1, 2, 3]
change_list(my_list)
print("List outside function:", my_list)

以上代码输出:

List inside function: [1, 2, 3, 4]
List outside function: [1, 2, 3, 4]

在上面的例子中,我们将一个列表传递给change_list()函数。在函数内部我们将列表附加一个元素。当我们打印函数外部的列表时,我们发现该列表也已经改变了,因为函数修改了传递的对象。

传递对象的值

在 Python 中,如果我们传递不可变对象(如数字、字符串和元组)作为参数,则在函数内部更改不会影响函数外部。

下面是一个传递不可变对象的示例:

def change_num(num):
    num += 10
    print("Number inside function:", num)

my_num = 5
change_num(my_num)
print("Number outside function:", my_num)

以上代码输出:

Number inside function: 15
Number outside function: 5

在上面的例子中,我们将一个数字传递给change_num()函数。在函数内部我们将数字增加了10。当我们打印函数外部的数字时,我们发现该数字并没有改变,因为函数不能修改传递的不可变对象。

总结

当我们传递一个可变对象时,函数可以修改传递的对象,而不会返回新对象。当我们传递不可变对象时,函数不能修改传递的对象,必须返回新对象。以上就是 Python 函数传值的完整攻略。

需要注意的是,Python 传值本身是传对象引用或值的引用,而不是传对象或值本身。因此,无论在函数内部如何操作对象或值,都不会影响到函数外部的对象或值,除非你使用了全局变量。