python 中的值传递和引用传递的区别

在 Python 中,值传递和引用传递是关于函数参数传递的两个概念。
        值传递(Pass by Value)是指在函数调用时,将参数的值复制一份传递给函数内部。这意味着函数内部对参数值的修改不会影响到函数外部的变量。例如:

def change_value(x):
    x = 10
 num = 5
change_value(num)
print(num)  # 输出: 5
# 在这个例子中, `num` 是一个整数变量。当调用 `change_value` 函数时,函数参数 `x` 接收到了 `num` 的值,但在函数内部对 `x` 的修改并不会影响到 `num` 的值。

        引用传递(Pass by Reference)是指在函数调用时,将参数的引用(内存地址)传递给函数内部。这意味着函数内部对参数值的修改会影响到函数外部的变量。例如:

def change_list(lst):
    lst.append(4)
 my_list = [1, 2, 3]
change_list(my_list)
print(my_list)  # 输出: [1, 2, 3, 4]
# 在这个例子中, `my_list` 是一个列表变量。当调用 `change_list` 函数时,函数参数 `lst` 接收到了 `my_list` 的引用,因此在函数内部对 `lst` 的修改也会影响到 `my_list` 。

        需要注意的是,Python 中的传递方式实际上都是值传递。对于不可变类型(如整数、字符串、元组等),传递的是值的副本,因此函数内部对参数的修改不会影响到函数外部的变量。而对于可变类型(如列表、字典等),传递的是引用的副本,因此函数内部对参数的修改会影响到函数外部的变量。

        希望以上解释对您有帮助!如果您有其他问题,请随时提问。

猜你喜欢

转载自blog.csdn.net/weixin_49786960/article/details/131706157
今日推荐