Python传参与传值有什么不同

   2025-02-15 3830
核心提示:在Python中,函数的参数传递方式可以分为传值和传引用两种方式。传值(传递对象的副本):当向函数传递一个不可变对象(如整数、

在Python中,函数的参数传递方式可以分为传值和传引用两种方式。

传值(传递对象的副本):当向函数传递一个不可变对象(如整数、字符串、元组)时,会创建该对象的副本,并将副本传递给函数。在函数内部对参数进行修改不会影响到原始对象。

示例代码:

def change_value(x):    x = 10    num = 5change_value(num)print(num)  # 输出 5

在上述代码中,将变量num传递给change_value函数。在函数内部将参数x的值修改为10,但是并不会对原始对象num产生影响。

传引用(传递对象的引用):当向函数传递可变对象(如列表、字典、集合)时,传递的是对象的引用(指针)。在函数内部对参数进行修改,会影响到原始对象。

示例代码:

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函数。在函数内部通过append方法向参数lst所引用的列表添加元素4,导致原始列表也被修改。

总结:

对于不可变对象,传值方式会创建副本,函数内部的修改不会影响到原始对象。对于可变对象,传引用方式直接传递引用,函数内部的修改会影响到原始对象。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言