国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python學習基礎之循環import及import過程

2020-02-22 23:47:29
字體:
來源:轉載
供稿:網友

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

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對武林站長站的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汤原县| 龙南县| 奉贤区| 怀安县| 宝清县| 南通市| 巨鹿县| 梓潼县| 灯塔市| 布拖县| 富川| 应城市| 吉水县| 乳源| 土默特右旗| 安仁县| 普兰县| 陆良县| 自治县| 紫云| 霍城县| 虞城县| 晋中市| 贵港市| 彩票| 武夷山市| 宕昌县| 汝州市| 碌曲县| 勐海县| 临洮县| 北海市| 金沙县| 天全县| 纳雍县| 游戏| 当阳市| 伊宁市| 东阳市| 溆浦县| 屯昌县|