A 什麼是模塊python
最高級別的程序組織單元(模塊什麼都能封裝)dom
模塊中,咱們不但能夠直接存放變量,還能存放函數,還能存放類函數
定義變量須要用賦值語句,
封裝函數須要用def語句,
封裝類須要用class語句,
但封裝模塊不須要任何語句(每一份單獨的Python代碼文件(後綴名是.py的文件)就是一個單獨的模塊)
——————————————————————————————————————————————
B 封裝模塊的目的
爲了把程序代碼和數據存放起來以便再次利用spa
使用模塊主要有兩種方式,3d
一種是本身創建模塊並使用,另一種是使用他人共享的模塊
——————————————————————————————————————————————
C 模塊相關的經常使用語句主要有3個code
C1 import 語句
目的
並非運行模塊中的執行語句,而是爲了利用模塊中已經封裝好的變量、函數、類blog
導入模塊
要使用模塊中的變量、函數、類,須要在使用時加上 模塊. 的格式ip
# 這是主程序main.py
import test # 導入test模塊
print(test.a) # 使用「模塊.變量」調用模塊中的變量
test.hi() # 使用「模塊.函數()」調用模塊中的函數文檔
A = test.Go2() # 使用「變量 = 模塊.類()」實例化模塊中的類
print(A.a) # 實例化後,再也不須要「模塊.」
A.do2() # 實例化後,再也不須要「模塊.」
——————————————————————————————————pip
1 # 【文件:story.py】 2 3 sentence = '從前有座山,' 4 5 def mountain(): 6 print('山裏有座廟,') 7 8 class Temple: 9 sentence = '廟裏有個老和尚,' 10 def reading(self): 11 print('在講一個長長的故事。') 12 13 # 【文件:main.py】 14 15 import story 16 17 for i in range(10): 18 print(story.sentence) 19 story.mountain() 20 A = story.Temple() 21 print(A.sentence) 22 A.reading() 23 print()
C1.1 import…as…
1 import story as s 2 3 for i in range(10): 4 print(s.sentence) 5 s.mountain() 6 A = s.Temple() 7 print(A.sentence) 8 A.reading() 9 print()
C1.2 同時導入多個模塊時,能夠用逗號隔開。
好比import a,b,c
同時導入「a.py,b.py,c.py」三個文件
########################################################################
C2 from … import … 語句
從模塊中導入一個指定的部分到當前模塊
1 # 【文件:test.py】 2 def hi(): 3 print('函數「hi」已經運行!') 4 5 # 【文件:main.py】 6 from test import hi # 從模塊test中導入函數「hi」 7 hi() # 使用函數「hi」時無需加上「模塊.」 前綴
C2.1同時導入多個指定內容,也能夠用逗號隔開
from xx模塊 import a,b,c
#################注 意 事 項 ##################################
對於from … import …語句要注意的是,沒有被寫在import後面的內容,將不會被導入
指定全部內容直接使用時,能夠寫成【from xx模塊 import *】的形式,*表明「模塊中全部的變量、函數、類」
通常不要直接使用【from xx模塊 import *】,由於塊.xx的調用形式能經過閱讀代碼一眼看出是在調用模塊中的變量/函數/方法,而去掉模塊.後代碼就不是那麼直觀了
###################################################################################################################################################
1 【test.py】 2 a = '我是模塊中的變量a' 3 4 def hi(): 5 a = '我是函數裏的變量a' 6 print('函數「hi」已經運行!') 7 8 class Go2: 9 a = '我是類2中的變量a' 10 def do2(self): 11 print('函數「do2」已經運行!') 12 13 【main.py】 14 from test import a,hi,Go2 15 16 print(a) # 打印變量「a」 17 18 hi() # 調用函數「hi」 19 20 A = Go2() # 實例化「Go2」類 #print(Go2.a) 21 print(A.a) # 打印實例屬性「a」 22 A.do2() # 調用實例方法「do2」 23 24 我是模塊中的變量a 25 函數「hi」已經運行! 26 我是類2中的變量a 27 函數「do2」已經運行!
C3 if __name__ == '__main__'
「程序的入口」
一大堆py文件組成一個程序的時候,爲了【指明】某個py文件是程序的運行入口
# 【文件:xx.py】
代碼塊 ①……
if __name__ == '__main__':
代碼塊 ②……
#當xx.py文件被直接運行時,代碼塊②將被運行」,
#xx.py文件做爲模塊是被其餘程序導入時,代碼塊②不被運行。
##########################################################################
使用他人的模塊
下載安裝第三方編寫的模塊的方式
#須要預裝python解釋器和pip
Windows用戶輸入pip install + 模塊名;
蘋果電腦輸入:pip3 install + 模塊名。
Python的內置模塊
內置模塊是用Python語言編寫的話,就能找到py文件
>>> import random
>>> random.__file__ #查詢內置模塊地址
'/usr/local/lib/python3.6/random.py'
如何自學模塊
閱讀官方文檔
直接百度搜索
使用案例作成筆記(函數和類方法有什麼做用)
dir()函數查看一個模塊,看看它裏面有什麼變量、函數、類、類方法
import random # 調用random模塊
print(dir(random)) #dir(random)