Python传参与传值有什么不同

50次阅读
没有评论

共计 583 个字符,预计需要花费 2 分钟才能阅读完成。

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

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

示例代码:

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

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

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

示例代码:

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,导致原始列表也被修改。

总结:

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

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-16发表,共计583字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)