python模块导入_Python模块导入详解
定義
模塊:用來從邏輯上組織Python代碼(變量、函數(shù)、類、邏輯)去實(shí)現(xiàn)一個功能。本質(zhì)就是.py結(jié)尾的Python文件。
包:用來從邏輯上組織模塊的(可以放一堆模塊在目錄下)。本質(zhì)就是一個目錄(必須帶有一個__init__.py文件)。
導(dǎo)入模塊
導(dǎo)入單個:
import 模塊名
導(dǎo)入多個:
import 模塊名1,模塊名2
導(dǎo)入模塊中所有代碼:
from 模塊名 import *
import導(dǎo)入于from 模塊名 import *導(dǎo)入在調(diào)用上的區(qū)別:
module.function()
function()
跨目錄導(dǎo)入包:
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 要導(dǎo)入的模塊
代碼說明
module_test.py
def Index():
print("Welcome to Index Page.")
main.py
# import module_test
from module_test import * #這種是把模塊中的代碼復(fù)制到了這個py腳本中
from module_test import Index as Index_module #如果導(dǎo)入的模塊中函數(shù)與該py腳本中的函數(shù)名一樣,使用as別名
def Index():
print("Main Page")
# module_test.Index() #這樣調(diào)用是不行的
Index()
Index_module()
輸出結(jié)果如下:
import本質(zhì)
就是把Python文件解釋一遍。
比如我們導(dǎo)入requests模塊,requests = requests模塊中的所有代碼,所以調(diào)用的時(shí)候需要requests.function()。
import requests
而使用from導(dǎo)入的時(shí)候,是把模塊中的代碼復(fù)制到了這個py腳本中,所以調(diào)用的時(shí)候直接使用函數(shù)。
導(dǎo)入包
導(dǎo)入包的本質(zhì)是去執(zhí)行包下的__init__.py文件。
import packagename
如果調(diào)用包中的模塊呢?
因?yàn)楸举|(zhì)是讀取__init__.py文件,因此在__init__.py文件寫要導(dǎo)入的模塊(相對導(dǎo)入)。
from . import 模塊名
調(diào)用的話就是
packagename.模塊名.function()
代碼演示
__init__.py:
print("in the package")
main.py:
import package
運(yùn)行效果:
導(dǎo)入優(yōu)化
import導(dǎo)入:使用多次模塊中的函數(shù)的話,會重復(fù)找路徑的動作,效率會低,因此可以使用from方法導(dǎo)入來優(yōu)化腳本效率。
module.function()
模塊的分類
標(biāo)準(zhǔn)庫(也叫內(nèi)置模塊)
開源模塊(也叫第三方模塊)
自定義模塊
總結(jié)
以上是生活随笔為你收集整理的python模块导入_Python模块导入详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ecs要按两次才有效_猫咪想要增肥有什么
- 下一篇: 俄罗斯凝固汽油弹是用钢装还是铝装?