Python高级编程,一

模块重新导入

模块导入

sys.path为检索目录,在其中添加目录地址即可:

import sys
sys.path.append("模块所在路径")

重新导入

运用imp中reload方法进行重新导入模块(个人理解:刷新导入模块)
from imp import *
reload(重新导入的模块名)

= 、is

"=="判断内容,判断是不是指向同一个地址时候用"is"

深拷贝、浅拷贝

copy是浅拷贝,deepcopy是深拷贝

浅拷贝

#浅拷贝,只拷贝了所指向的地址
a = [1,2,3]
b = a
print(id(a))
print(id(b))
print(b)
#a与b所指向的地址相同
    输出:
94509704
94509704
[1, 2, 3]

深拷贝

#深拷贝,另开辟一个地址,拷贝了内容
import copy
a = [1,2,3]
c = copy.deepcopy(a)
print(id(a))
print(id(c))
print(c)
#a与c所指向的地址不同
输出:
94908232
94510472
[1, 2, 3]
用copy模块的copy功能时应当注意,他会根据当前拷贝的数据类型时可变类型还是不可变类型有不同的处理方式
import copy
a = [1,2,3]
b = [4,5,6]
c = [a,b] #列表,可变类型
d = copy.copy(c)
print(id(c))#ID值不同
print(id(d))
print(c)
输出:
94368840
59755848
[[1, 2, 3], [4, 5, 6]]
import copy
a = [1,2,3]
b = [4,5,6]
c = (a,b) #元组,不可更改类型
d = copy.copy(c)
print(id(c))#ID值相同
print(id(d))
print(c)
93307464
93307464
([1, 2, 3], [4, 5, 6])