Python中参数的传递都是“引用传递”。
具体操作可分为两类:
可变对象有:
不可变对象有:
浅拷贝示例代码:
import copy
a_list = [20, 50, [5, 6]]
b_list = copy.copy(a_list)
def test():
print("a : ", a_list)
print("b : ", b_list)
b_list.append(100)
b_list[2].append(200)
print("浅拷贝...")
print("a : ", a_list)
print("b : ", b_list)
if __name__ == '__main__':
test()
运行结果:
a : [20, 50, [5, 6]]
b : [20, 50, [5, 6]]
浅拷贝...
a : [20, 50, [5, 6, 200]]
b : [20, 50, [5, 6, 200], 100]
深拷贝示例代码:
import copy
def test_deepcopy():
a_list = [20, 50, [5, 6]]
b_list = copy.deepcopy(a_list)
print("a : ", a_list)
print("b : ", b_list)
b_list.append(100)
b_list[2].append(200)
print("深拷贝...")
print("a : ", a_list)
print("b : ", b_list)
if __name__ == '__main__':
test_deepcopy()
运行结果:
a : [20, 50, [5, 6]]
b : [20, 50, [5, 6]]
深拷贝...
a : [20, 50, [5, 6]]
b : [20, 50, [5, 6, 200], 100]
位置参数
默认值参数
命名参数
可变参数
强制命名参数