Python参数传递是传对象引用,不可变对象(如整数、字符串)在函数内修改不影响外部,可变对象(如列表、字典)内容可被修改,因共享引用;为避免修改,应传入副本(如copy或切片)。

在 Python 中,参数传递的方式取决于对象的类型,理解这一点对掌握函数行为很重要。Python 的参数传递既不是纯粹的“值传递”,也不是完全的“引用传递”,而是传递对象的引用(也叫“传对象引用”或“按共享传递”)。
当传递不可变对象时,函数内部无法修改原始对象。看起来像“值传递”,因为修改局部变量不会影响外部变量。
示例:def modify_num(x):
x = 10
print("函数内:", x)
<p>num = 5
modify_num(num)
print("函数外:", num)函数内: 10 函数外: 5
当传递可变对象时,函数可以修改原对象的内容,因为它们共享同一个对象引用。
示例:def modify_list(lst):
lst.append(4)
print("函数内:", lst)
<p>my_list = [1, 2, 3]
modify_list(my_list)
print("函数外:", my_list)函数内: [1, 2, 3, 4] 函数外: [1, 2, 3, 4]
如果你不希望函数修改原始数据,可以在传参时传入副本。
立即学习“Python免费学习笔记(深入)”;
使用切片或 copy 方法创建副本:
modify_list(my_list.copy()) # 传副本 modify_list(my_list[:]) # 列表切片也是副本
基本上就这些。关键是理解“引用”和“可变性”的关系。
以上就是python如何将值传递参数的详细内容,更多请关注php中文网其它相关文章!
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号