溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python中import的使用方法

發(fā)布時(shí)間:2021-03-05 16:24:40 來源:億速云 閱讀:367 作者:小新 欄目:編程語言

這篇文章主要介紹python中import的使用方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

使用python中import的方法:1、【import module_name】,即import后直接接模塊名;2、【from package_name import module_name】把模塊組成的集合。

使用python中import的方法:

首先,先建立一個(gè)文件夾Tree作為工作目錄,并在其內(nèi)建立兩個(gè)文件m1.py和m2.py,在m1.py寫入代碼:

import os
import m2
m2.printSelf()

在m2.py寫入代碼:

def printSelf():
print('In m2')

打開命令行,進(jìn)入到Tree目錄下,敲下python m1.py運(yùn)行,發(fā)現(xiàn)沒有報(bào)錯(cuò),且打印出In m2,說明這樣使用import沒有問題。由此我們總結(jié)出import語句的第一種用法。

import module_name。即import后直接接模塊名。在這種情況下,Python會(huì)在兩個(gè)地方尋找這個(gè)模塊,第一是sys.path(通過運(yùn)行代碼import sys; print(sys.path)查看),os這個(gè)模塊所在的目錄就在列表sys.path中,一般安裝的Python庫的目錄都可以在sys.path中找到(前提是要將Python的安裝目錄添加到電腦的環(huán)境變量),所以對(duì)于安裝好的庫,我們直接import即可。第二個(gè)地方就是運(yùn)行文件(這里是m1.py)所在的目錄,因?yàn)閙2.py和運(yùn)行文件在同一目錄下,所以上述寫法沒有問題。

用上述方法導(dǎo)入原有的sys.path中的庫沒有問題。但是,最好不要用上述方法導(dǎo)入同目錄下的文件!因?yàn)檫@可能會(huì)出錯(cuò)。演示這個(gè)錯(cuò)誤需要用到import語句的第二種寫法,所以先來學(xué)一學(xué)import的第二種寫法。在Tree目錄下新建一個(gè)目錄Branch,在Branch中新建文件m3.py,m3.py的內(nèi)容如下:

def printSelf():
print('In m3')

如何在m1中導(dǎo)入m3.py呢,請(qǐng)看更改后的m1.py:

from Branch import m3
m3.printSelf()

總結(jié)import語句的第二種用法:

from package_name import module_name。一般把模塊組成的集合稱為包(package)。與第一種寫法類似,Python會(huì)在sys.path和運(yùn)行文件目錄這兩個(gè)地方尋找包,然后導(dǎo)入包中名為module_name的模塊。

現(xiàn)在我們來說明為什么不要用import的第一種寫法來導(dǎo)入同目錄下的文件。在Branch目錄下新建m4.py文件,m4.py的內(nèi)容如下:

def printSelf():
print('In m4')

然后我們?cè)趍3.py中直接導(dǎo)入m4,m3.py變?yōu)椋?/p>

import m4
def printSelf():
print('In m3')

這時(shí)候運(yùn)行m1.py就會(huì)報(bào)錯(cuò)了,說沒法導(dǎo)入m4模塊。為什么呢?我們來看一下導(dǎo)入流程:m1使用from Branch import m3導(dǎo)入m3,然后在m3.py中用import m4導(dǎo)入m4??闯鰡栴}了嗎?m4.py和m1.py不在同一目錄,怎么能直接使用import m4導(dǎo)入m4呢。(讀者可以試試直接在Tree目錄下新建另一個(gè)m4.py文件,你會(huì)發(fā)現(xiàn)再運(yùn)行m1.py就不會(huì)出錯(cuò)了,只不過導(dǎo)入的是第二個(gè)m4.py了)

面對(duì)上面的錯(cuò)誤,使用python2運(yùn)行m1.py就不會(huì)報(bào)錯(cuò),因?yàn)樵趐ython2中,上面提到的import的兩種寫法都屬于相對(duì)導(dǎo)入,而在python3中,卻屬于絕對(duì)導(dǎo)入。話說到了這里,就要牽扯到import中最關(guān)鍵的部分了——相對(duì)導(dǎo)入和絕對(duì)導(dǎo)入。

我們還是談?wù)損ython3的import用法。上面提到的兩種寫法屬于絕對(duì)導(dǎo)入,即用于導(dǎo)入sys.path中的包和運(yùn)行文件所在目錄下的包。對(duì)于sys.path中的包,這種寫法毫無問題;導(dǎo)入自己寫的文件,如果是非運(yùn)行入口文件(上面的m1.py是運(yùn)行入口文件,可以使用絕對(duì)導(dǎo)入),則需要相對(duì)導(dǎo)入。

比如對(duì)于非運(yùn)行入口文件m3.py,其導(dǎo)入m4.py需要使用相對(duì)導(dǎo)入:

from . import m4
def printSelf():
print('In m3')

這時(shí)候再運(yùn)行m1.py就ok了。

以上是“python中import的使用方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI