模塊
- 實(shí)質(zhì)就是py文件。查看本地系統(tǒng)自帶的模塊
Snip20170810_1.png
- 如果想安裝其他模塊,可以通過(guò)
sudo pip install pygame
如果是python3
sudo pip3 install pygame
如果ubuntu系統(tǒng)提示找不到pip命令可以通過(guò)源添加
sudo apt-get install python3-pip
- 自己寫(xiě)一個(gè)模塊,也就是寫(xiě)一個(gè)py文件
文件名:sendmsg.py
def test1():
print ("----test1---")
def test2():
print ("-----test2----")
if __name__ == '__main__':
test1()
test2()
文件名:receivemsg.py
def test1():
print ("reveive----test1---")
def test2():
print ("reveive-----test2----")
test1()
test2()
我們正常寫(xiě)代碼需要測(cè)試的,比如單元測(cè)試,在公司提交代碼之前也要現(xiàn)自己測(cè)試。畢竟不想做no1.
匯總后寫(xiě)一個(gè)main.py測(cè)試所有不同模塊的代碼。
文件名:main.py
import sendmsg as s
import revmsg as r
s.test1()
s.test2()
r.test1()
此處就看到了非常常見(jiàn)的import關(guān)鍵字,由此就證明,模塊其實(shí)就是個(gè)py文件。畢竟我只寫(xiě)一個(gè)兩個(gè)py文件,正好就可以導(dǎo)入了。運(yùn)行main.py會(huì)發(fā)現(xiàn)如下運(yùn)行結(jié)果
Snip20170810_2.png
發(fā)現(xiàn)main.py中只進(jìn)行了三次函數(shù)調(diào)用,結(jié)果確顯示5個(gè)調(diào)用。
原來(lái),每個(gè)模塊被導(dǎo)入的時(shí)候,默認(rèn)情況都會(huì)執(zhí)行一遍所有的函數(shù)。注意,這里的sendmsg.py文件末尾有一處不同于receive.py文件。因此結(jié)果中只出現(xiàn)reveive打印兩次,sendmsg并沒(méi)有打印。
if __name__ == '__main__':
test1()
test2()
到底是什么意思?
如果是本身打印name,結(jié)果是main
Snip20170810_3.png
如果通過(guò)別人導(dǎo)入后打印,name,結(jié)果是它自身的文件名字
Snip20170810_5.png
因此
if __name__ == '__main__':
test1()
test2()
上述代碼的意思就是,如果本身文件執(zhí)行的,就允許執(zhí)行下面的代碼,一般是測(cè)試。如果是別人調(diào)用,就不給予執(zhí)行