📜  Python是按引用调用还是按值调用(1)

📅  最后修改于: 2023-12-03 14:46:45.094000             🧑  作者: Mango

Python是按引用调用还是按值调用

在Python中,函数参数的传递方式是按引用传递,也称作对象引用传递。这意味着函数的形参是实参的引用,而不是它们的值。修改形参会影响实参的值。

例如,下面的代码将会输出 [5, 2]

def modify_list(lst):
    lst.append(2)
    lst[0] = 5

mylist = [1, 2, 3]
modify_list(mylist)
print(mylist)

在这个例子中,mylist 是一个列表对象的引用。当调用 modify_list() 时,该引用作为参数传递给函数,此时 lst 就是 mylist 的另一个引用。由于 lstmylist 都引用同一个列表对象,所以在修改 lst 的值时会影响到 mylist 的值。

在 Python 中,一切都是对象。函数的参数可以是任何对象,包括整数、浮点数、列表、元组等,它们都是对象。当传递对象时,实际上传递的是对象的引用,而不是值。

因此,可以把 Python 传递参数的方式称作按引用调用,而非按值调用。

总之,在 Python 中,函数参数的传递方式是按引用传递。这一点需要注意,以免在使用时出现错误。