中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中循環import的用法示例

發布時間:2021-08-20 09:21:04 來源:億速云 閱讀:168 作者:小新 欄目:開發技術

這篇文章主要介紹了python中循環import的用法示例,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

import介紹

import語句作用就是用來導入模塊的,它可以出現在程序中的任何位置。

import語句語法

使用import語句導入模塊,import語句語法如下:

import module
關鍵字 模塊名

使用方法例如:

import math #入導math模塊
math.floor() #調用math模塊中的floor()函數

如果要同時導入多個模塊,只需要在模塊名之前用逗號進行分隔:

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

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

引用

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

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

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

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

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

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

可以把import語句盡可能往后放,比如放到文件最后,那么應該是沒問題的,因為執行到import時,已經確保了當前的腳本的內容已經注冊到了內存的map中。

當然也可以放到函數的內部,即其他模塊的調用處。

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

感謝你能夠認真閱讀完這篇文章,希望小編分享的“python中循環import的用法示例”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

和龙市| 玛多县| 安宁市| 太原市| 清水河县| 抚州市| 亳州市| 苏州市| 井陉县| 察哈| 桑植县| 安达市| 类乌齐县| 鄂州市| 辽宁省| 瑞丽市| 峨山| 仙游县| 施秉县| 康马县| 拜城县| 鄂托克旗| 平邑县| 宁国市| 金门县| 阿拉善左旗| 岐山县| 嘉禾县| 凌海市| 灵璧县| 仙桃市| 无锡市| 宁城县| 余庆县| 肥城市| 达尔| 项城市| 榆树市| 奉节县| 义乌市| 屏东市|