python3进阶

对象、复制、copy、deepcopy

对象之间的赋值其实是引用发生改变,例如b=a,之后改变b的内容后,a也会改变。

如果需要复制而不是共享对象,应该使用copy模块:

import copy

a=[1,2]
b=copy.copy(a)

但是此时copy,如果内容中有一个对象,那么copy来的也是那个对象的引用:

import copy

a=[1,[1,2]]
b=copy.copy(a) # b[1].append(3)后,a也会变为[1,[1,2,3]]

此时需要深拷贝:

import copy

a=[1,[1,2]]
b=copy.deepcopy(a) 

关键字global

x = 1

def func():
    global x
    x = 2

当函数内部需要对外部变量进行赋值操作时,需要用global将其引入

你可能感兴趣的:(C/C++/Java/Html,python)