1.
a = {'1': 1}
b = a.copy()
b['1'] = 2
print(a['1'])
# 1
2.
def test(num):
num = 9
a = 8
test(a)
print(a)
# 8
3.
t = ([1,2,3], 'hi')
t[0].append(4)
print(t)
# ([1, 2, 3, 4], 'hi')
4.
在 Python 中,函数参数传递采用的是浅拷贝。这意味着,如果函数参数是一个可变对象(如列表或字典),则在函数内部对该对象的修改会影响到原始对象。
例如,考虑以下代码:
def modify_list(my_list):
my_list.append(4)
lst = [1, 2, 3]
modify_list(lst)
print(lst) # 输出 [1, 2, 3, 4]
在这个例子中,modify_list
函数接收了一个列表 my_list
,然后在该函数内部通过 append
方法向该列表添加了一个元素。由于 Python 采用的是浅拷贝,因此这个操作会影响到原始列表 lst
,所以在函数调用结束后,lst
的内容发生了变化。
需要注意的是,浅拷贝只适用于可变对象。对于不可变对象(如整数、浮点数、字符串和元组),无论是浅拷贝还是深拷贝,都不会影响到原始对象。