Python模塊導入詳解


定義

模塊:用來從邏輯上組織Python代碼(變量、函數、類、邏輯)去實現一個功能。本質就是.py結尾的Python文件。

包:用來從邏輯上組織模塊的(可以放一堆模塊在目錄下)。本質就是一個目錄(必須帶有一個__init__.py文件)。

 

導入模塊

導入單個:

import 模塊名

 

導入多個:

import 模塊名1,模塊名2

  

導入模塊中所有代碼:

from 模塊名 import *

  

import導入於from 模塊名 import *導入在調用上的區別:

module.function()
function()

  

跨目錄導入包:

import sys
print(sys.path) #python會去哪些目錄下找模塊,是一個列表
Module_Dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))  #獲取到模塊目錄
sys.path.append(Module_Dir)#把模塊目錄加到sys.path列表中
import 要導入的模塊

  

代碼說明

module_test.py

def Index():
	print("Welcome to Index Page.")

  

main.py

# import module_test
from module_test import * #這種是把模塊中的代碼復制到了這個py腳本中
from module_test import Index as Index_module #如果導入的模塊中函數與該py腳本中的函數名一樣,使用as別名

def Index():
print("Main Page")
# module_test.Index() #這樣調用是不行的
Index()
Index_module()

  

輸出結果如下:

 

 

 

import本質

就是把Python文件解釋一遍。

比如我們導入requests模塊,requests = requests模塊中的所有代碼,所以調用的時候需要requests.function()。

import requests

 

而使用from導入的時候,是把模塊中的代碼復制到了這個py腳本中,所以調用的時候直接使用函數。

 

導入包

導入包的本質是去執行包下的__init__.py文件。

import packagename

如果調用包中的模塊呢?

因為本質是讀取__init__.py文件,因此在__init__.py文件寫要導入的模塊(相對導入)。

from . import 模塊名

  

調用的話就是

packagename.模塊名.function()

  

 

 

 

 

 

 

 

 

 

 

 

 

代碼演示

 

__init__.py:

print("in the package")

  

main.py:

import package

  

運行效果:

 

 

 

 

導入優化

import導入:使用多次模塊中的函數的話,會重復找路徑的動作,效率會低,因此可以使用from方法導入來優化腳本效率。

module.function()

  

模塊的分類

  • 標准庫(也叫內置模塊)
  • 開源模塊(也叫第三方模塊)
  • 自定義模塊

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM