1.包和模塊
1.1包(lib)
python里面的包是指一個文件夾,一般包含init.py文件,y一個包里面可以同時包含多個py文件瞬内。
1.2模塊(module)
python里面模塊是指一個寫有python代碼,用于完成某項功能的文件逝慧,一個模塊可以看成獨立的文件击胜,一個文件也可以看成一個模塊。
1.3模塊的引入
比如創(chuàng)建一個包mypackage躏结,包文件夾下創(chuàng)建兩個自定義模塊test1、test2以及init.py和用于測試的demo01文件狰域。
1.3.1第一種引入
import + 包路徑文件名稱
我們可以在demo01文件里這樣引用,如import mypackage.test1
,import mypackage.test2
1.3.2第二種引入
from +包路徑+import+模塊名稱
如from mypackage import test1
,from mypackage import test2
1.3.3第三種引入
from +包路徑+import * 引入該包下面的所有模塊黄橘,首先要創(chuàng)建一個--init--文件兆览,在文件里寫入__all__=["test1","test2"]
,然后通過from mypackage import *
來引入當前包路徑下的所有模塊。
2. ==和is的使用
“==”比較的是兩個對象的數(shù)值是否相等塞关,“is”比較的是兩個對象是否指向同一個內(nèi)存(id是否相等)
聲明了一個變量a=10抬探,b=10,判斷兩個對象的值是否相等以及是否指向同一個內(nèi)存
3.拷貝(copy)
Python中,對象的賦值都是進行對象引用(內(nèi)存地址)傳遞小压。
python內(nèi)置了copy模塊线梗,通過import copy
即可。
所謂拷貝怠益,就是創(chuàng)建一個新對象仪搔,拷貝出來的對象與原對象沒有任何關聯(lián)(id地址發(fā)生了變化)。
3.1深拷貝
深拷貝(copy.deepcopy())是創(chuàng)建一個新對象蜻牢,遞歸copy原對象的所有子對象烤咧,然后與原對象斷開聯(lián)系,當原對象的子對象發(fā)生變化時抢呆,深拷貝的對象不會發(fā)生變化煮嫌。
3.2淺拷貝
淺拷貝是創(chuàng)建一個新對象,copy原對象的所有子對象抱虐,然后與原對象斷開聯(lián)系昌阿,當原對象的子對象發(fā)生變化時,淺拷貝的對象隨之發(fā)生變化(共享子對象)恳邀。