欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python學(xué)習(xí)基礎(chǔ)之循環(huán)import及import過程

 更新時間:2018年04月22日 08:46:45   作者:絕世好阿貍  
python中的import語句是用來導(dǎo)入模塊的,下面這篇文章主要給大家介紹了關(guān)于python學(xué)習(xí)基礎(chǔ)之循環(huán)import及import過程的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。

import介紹

import語句作用就是用來導(dǎo)入模塊的,它可以出現(xiàn)在程序中的任何位置。

import語句語法

使用import語句導(dǎo)入模塊,import語句語法如下:

import module
關(guān)鍵字 模塊名

使用方法例如:

import math #入導(dǎo)math模塊
math.floor() #調(diào)用math模塊中的floor()函數(shù)

如果要同時導(dǎo)入多個模塊,只需要在模塊名之前用逗號進(jìn)行分隔:

import module1,module2,module3.......

同時導(dǎo)入多個模塊的方法,對于初學(xué)者來說可讀性和可理解性不如第一種好。所以想要導(dǎo)入多個模塊時,還是比較推薦用第一種方式,把每一個模塊都單獨進(jìn)行一次導(dǎo)入,可能會感覺操作起來麻煩一些,但便于理解。

引用

最近項目組用python,慢慢開始學(xué)習(xí)了。第一天就遇到了import問題。

python語言的import有兩種方法,一個是import 模塊名,一個是from 模塊名 import 函數(shù)或者類或者變量。

直接import只能import模塊,不能import 模塊里面的內(nèi)容。使用內(nèi)容必須加上模塊名。

在import的時候,系統(tǒng)會把所有的加載的模塊載入內(nèi)存,并且放入一個map中,from A import B的過程是,看是否有A模塊在系統(tǒng)中加載,如果有則直接拿出來,否則新建一個,這時需要填充A模塊的內(nèi)容,就需要執(zhí)行A模塊的文件。一旦構(gòu)建好了A模塊,那么就可以從A里面取B了,如果沒有就報錯。

上述邏輯是如果用A,A沒有載入,就執(zhí)行A,否則就直接返回A的函數(shù)或者變量。這個時候就有一個問題,當(dāng)前腳本Main第一次執(zhí)行,需要執(zhí)行from A import ,發(fā)現(xiàn)沒有A,就新建一個A在內(nèi)存中,然后填充A模塊的信息,就會去執(zhí)行A,此時,A里面要 from Main import D,那么因為Main已被執(zhí)行,就直接從內(nèi)存的map中取得Main的信息,不過此時Main的信息還沒有填充完,因為之前就是為了填充才轉(zhuǎn)到A的,這時從已有的空的Main中拿不到D,就會報錯,ImportError。

所以,項目中盡量不要循環(huán)import,很可能會產(chǎn)生這樣的錯。那么一旦產(chǎn)生怎么解決?

可以把import語句盡可能往后放,比如放到文件最后,那么應(yīng)該是沒問題的,因為執(zhí)行到import時,已經(jīng)確保了當(dāng)前的腳本的內(nèi)容已經(jīng)注冊到了內(nèi)存的map中。

當(dāng)然也可以放到函數(shù)的內(nèi)部,即其他模塊的調(diào)用處。

from lib import lib1 
 
def func1(): 
 print("main.func1") 
 lib1() 
 
 
def func2(): 
 print("main.func1") 
 
func1() 

main.py

from main import func2 
 
def lib1(): 
 func2() 
 print("lib.lib1") 
 
 
def lib2(): 
 func2() 

lib.py

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • PyQt5 QListView 高亮顯示某一條目的案例

    PyQt5 QListView 高亮顯示某一條目的案例

    這篇文章主要介紹了PyQt5 QListView 高亮顯示某一條目的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • python文件拆分與重組實例

    python文件拆分與重組實例

    今天小編就為大家分享一篇python文件拆分與重組實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python dataframe astype 字段類型轉(zhuǎn)換方法

    python dataframe astype 字段類型轉(zhuǎn)換方法

    下面小編就為大家分享一篇python dataframe astype 字段類型轉(zhuǎn)換方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python中property和setter裝飾器用法

    python中property和setter裝飾器用法

    今天小編就為大家分享一篇python中property和setter裝飾器用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python3 Tkinkter + SQLite實現(xiàn)登錄和注冊界面

    Python3 Tkinkter + SQLite實現(xiàn)登錄和注冊界面

    這篇文章主要為大家詳細(xì)介紹了Python3 Tkinkter + SQLite實現(xiàn)登錄和注冊界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • 開啟Django博客的RSS功能的實現(xiàn)方法

    開啟Django博客的RSS功能的實現(xiàn)方法

    這篇文章主要介紹了開啟Django博客的RSS功能的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 切換路徑在Jupyter里調(diào)用本地文件的操作

    切換路徑在Jupyter里調(diào)用本地文件的操作

    這篇文章主要介紹了切換路徑在Jupyter里調(diào)用本地文件的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python打包exe文件一步步圖解明了簡單

    Python打包exe文件一步步圖解明了簡單

    之前看很多人都在問,Python怎么打包exe可執(zhí)行文件,雀氏有點多,那么我來了,給大家整一個Python打包exe可執(zhí)行文件的究極教程
    2021-11-11
  • python實現(xiàn)ID3決策樹算法

    python實現(xiàn)ID3決策樹算法

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)ID3決策樹算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Python面向?qū)ο笾腴T類和對象

    Python面向?qū)ο笾腴T類和對象

    這篇文章主要為大家介紹了Python入門類和對象,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12

最新評論