python函数传参没改变参数值是为什么
时间: 2024-11-15 09:26:29 浏览: 5
详解python函数传参是传值还是传引用
在Python中,当你将一个变量作为函数参数传递时,函数内部看到的是这个参数的副本,而不是原始值的引用。这意味着对函数内部的参数所做的任何修改都不会影响到外部变量的原始值。这种行为被称为“传值”(pass by value),而非“传引用”(pass by reference)。
例如:
```python
def change_value(num):
num = 100
x = 5
change_value(x)
print(x) # 输出:5
```
在这个例子中,虽然`change_value`函数试图通过`num = 100`改变`x`的值,但实际上`x`的值保持不变,因为函数接收的是`x`的一个新副本。
如果你想要在函数内部修改一个大型数据结构,比如列表或字典,并期望外部看到变化,你可以直接操作这个数据结构,因为它实际上是引用传递的,所以修改会反映在外部:
```python
def update_list(lst):
lst.append(4)
my_list = [1, 2, 3]
update_list(my_list)
print(my_list) # 输出:[1, 2, 3, 4]
```
这里,我们通过`lst.append()`改变了列表`my_list`的内容。
阅读全文