给完整代码例子
时间: 2023-07-03 20:11:49 浏览: 39
好的,以下是一个完整的 Python 代码例子,用于演示函数参数传递中对象引用的特性:
```python
def foo(x, y, z):
x += 1
y.append(2)
z = [3, 4, 5]
a = 1
b = [1]
c = [1, 2]
foo(a, b, c)
print(a) # 输出 1
print(b) # 输出 [1, 2]
print(c) # 输出 [1, 2]
```
在这个例子中,我们定义了一个名为 `foo` 的函数,它接受三个参数 `x`、`y` 和 `z`。在函数内部,我们对这三个参数进行了不同的操作:
- 对于参数 `x`,我们将其增加了 1。
- 对于参数 `y`,我们向其末尾添加了一个元素 2。
- 对于参数 `z`,我们将其重新赋值为一个新的列表。
接下来,我们定义了三个变量 `a`、`b` 和 `c`,并将它们分别赋值为整数 1、列表 `[1]` 和列表 `[1, 2]`。然后,我们调用 `foo` 函数,传递这三个变量作为参数。
最后,我们输出了这三个变量的值。由于 Python 中的函数参数传递是通过对象引用实现的,因此我们可以看到以下结果:
- 变量 `a` 的值仍然是 1,因为整数是不可变对象,函数中对参数 `x` 的修改不会影响原始对象。
- 变量 `b` 的值变为了 `[1, 2]`,因为列表是可变对象,函数中对参数 `y` 的修改影响了原始对象。
- 变量 `c` 的值仍然是 `[1, 2]`,因为函数中的参数 `z` 被重新赋值为一个新的列表,这不会影响原始对象。