Python参数传递本质是对象引用传递:不可变对象(如数字、字符串)在函数内修改会绑定新对象,原变量不变;可变对象(如列表、字典)调用就地方法会改变原对象;可通过浅拷贝、深拷贝或返回新对象避免意外修改。

Python 中传递参数值主要靠“对象引用传递”,但实际效果常被理解为“按对象传值”——关键看对象是否可变。
数字、字符串、元组等不可变对象,函数内修改会创建新对象,原变量不受影响:
def add_one(x): x += 1; print(x);调用 num = 5; add_one(num) 输出 6,但 num 仍是 5x += 1 重新绑定了局部变量 x 到新整数对象,没改原对象列表、字典、集合等可变对象,函数内直接调用方法(如 .append()、.update())会改变原对象:
def append_item(lst): lst.append('new');调用 my_list = [1]; append_item(my_list) 后 my_list 变成 [1, 'new']</li> <li>因为 <code>lst
my_list 指向同一个列表对象,操作的是它本身若不希望函数改动原始可变对象,传入前手动拷贝:
立即学习“Python免费学习笔记(深入)”;
func(my_list.copy()) 或 func(my_list[:])(仅适用于列表)import copy; func(copy.deepcopy(my_dict))
local_lst = lst.copy(),再操作 local_lst
更清晰、更安全的做法是让函数返回新对象,由调用方决定是否赋值:
def add_item(lst, item): return lst + [item];然后 new_list = add_item(old_list, 'x')
基本上就这些。记住核心:Python 传的是对象的引用,但“能不能改原对象”,取决于对象类型和你用了什么操作。
以上就是python中怎样传递参数值的详细内容,更多请关注php中文网其它相关文章!
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号