關於python中的包,模塊導入的問題詳解(一)

 

最近由於初學python,對包,模塊的導入問題進行了資料的搜集,查閱,在這裏做一個總結:

 

  •  一: import 模塊

在import的過程中發生了什麼?我們用一個實驗來說明:

《關於python中的包,模塊導入的問題詳解(一)》

以上截圖表明:在import + 模塊中,直接執行了裏面是語句

引申:一個模塊不會被重複導入,如果要使用被導入模塊的變量,要用   模塊.變量名  的方式 。

如果全局空間與模塊的局部空間有命名重複的變量名或函數名,則在各自對應的域內去尋找各自的對象

如下代碼所示

 1 ########file_2.py
 2 print("This is file_2")
 3 
 4 file_v2 = 'msy'       #定義變量
 5 def file_d2():          #定義函數
 6     print("This is file_d2!!!")
 7 
 8 
 9 ########file_1.py
10 import  file_2           #導入模塊
11 
12 
13 print(file_2.file_v2)    #使用模塊的變量
14 print(file_2.file_d2())  #使用模塊的函數

 

 

######起別名需注意的地方

import file_2 as f


#####注意:::起了別名以後,原來的名字在當前模塊就不能使用了

 

拓展:按照PeP8開發規範,導入多個模塊時,雖然可以一個import可以一次性導入多個模塊,但不符合規範,且需按照#內置模塊,#第三方模塊,#自定義模塊

的順序來導入

 

 

  • 二:模塊搜索路徑
1 ##############模塊搜索路徑
2 
3 import  sys
4 import os
5 
6 base = os.path.basename(__file__)   #當前文件名
7 base2 = os.path.abspath(__file__)           #絕對路徑
8 base3 = os.path.dirname(os.path.abspath(__file__))  #當前文件路徑
9 base4 = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))  #當前文件上級路徑

 

引申:除了sys.path中是內置,拓展模塊外,其他模塊都應使用你直接執行這個文件所在的目錄作為搜索路徑;

  一個模塊是否能被導入,就看這個模塊的所在的目錄在不在sys.path中,如下圖演示:

《關於python中的包,模塊導入的問題詳解(一)》

 

《關於python中的包,模塊導入的問題詳解(一)》

 

 

  • 三:運行py的方式

常用的兩種運行方式:1、cmd  python xx.py   腳本的方式運行

          2、導入他,import xx.py  

  但大多數情況我們所見到的import 時 並不會有控制台輸出,但是cmd運行的時候為什麼有輸出呢?(pycharm 運行也是腳本運行)

  或者如何達到這樣的效果呢?

 

1 #############實現import調用時不輸出代碼
2 if __name__ == __main__:
3         代碼塊
4 
5 #############################

 

点赞

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *