Python传参与传值有什么不同
在Python中,函数的参数传递方式可以分为传值和传引用两种方式。
- 传值(传递对象的副本):当向函数传递一个不可变对象(如整数、字符串、元组)时,会创建该对象的副本,并将副本传递给函数。在函数内部对参数进行修改不会影响到原始对象。
示例代码:
def change_value(x):
x = 10
num = 5
change_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,导致原始列表也被修改。
总结:
- 对于不可变对象,传值方式会创建副本,函数内部的修改不会影响到原始对象。
- 对于可变对象,传引用方式直接传递引用,函数内部的修改会影响到原始对象。
版权声明
本文仅代表作者观点,不代表米安网络立场。
上一篇:笔记本电脑驱动程序如何安装 下一篇:c++ substring函数的用法是什么
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。