黄视频网站在线免费观看-黄视频网站在线看-黄视频网站在线观看-黄视频网站免费看-黄视频网站免费观看-黄视频网站免费

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > Python導入模塊時的過程

Python導入模塊時的過程

來源:千鋒教育
發布人:xqq
時間: 2023-11-07 14:24:22 1699338262

python的import是在程序運行期間執行的,并非像其它很多語言一樣是在編譯期間執行。也就是說,import可以出現在任何地方,只有執行到這個import行時,才會執行導入操作。且在import某個模塊之前,無法訪問這個模塊的屬性。

python在import導入模塊時,首先搜索模塊的路徑,然后編譯并執行這個模塊文件。雖然概括起來只有兩個過程,但實際上很復雜。

前文已經解釋了import的模塊搜索過程,所以這里大概介紹import的其它細節。

以前面的a.py中導入模塊文件b.py為例:

importb

import導入模塊時,搜索到模塊文件b.py后:

1.首先在內存中為每個待導入的模塊構建module類的實例:模塊對象。這個模塊對象目前是空對象,這個對象的名稱為全局變量b。

注意細節:module類的對象,變量b。

輸出下它們就知道:

print(b)

print(type(b))

輸出結果:

因為b是全局變量,所以當前程序文件a.py中不能重新對全局變量b進行賦值,這會使導入的模塊b被丟棄。例如,下面是錯誤的:

importb

b=3

print(b.x)#已經沒有模塊b了

另外,因為import導入時是將模塊對象賦值給模塊變量,所以模塊變量名不能是python中的一些關鍵字,比如if、for等,這時會報錯。雖然模塊文件名可以為list、keys等這樣的內置函數名,但這會導致這些內置函數不可用,因為根據變量查找的作用域規則,首先查找全局變量,再查找內置作用域。也就是說,模塊文件的文件名不能是這些關鍵字、也不應該是這些內置函數名。

File"g:/pycode/new.py",line11

importif

^

SyntaxError:invalidsyntax

2.構造空模塊實例后,將編譯、執行模塊文件b.py,并按照一定的規則將一些結果放進這個模塊對象中。

注意細節,編譯、執行b.py、將結果保存到模塊對象中。

模塊第一次被導入的時候,會進行編譯,并生成.pyc字節碼文件,然后python執行這個pyc文件。當模塊被再次導入時,如果檢查到pyc文件的存在,且和源代碼文件的上一次修改時間戳mtime完全對應(也就是說,編譯后源代碼沒有進行過修改),則直接裝載這個pyc文件并執行,不會再進行額外的編譯過程。當然,如果修改過源代碼,將會重新編譯得到新的pyc文件。

注意,并非所有的py文件都會生成編譯得到的pyc文件,對于那些只執行一次的程序文件,會將內存中的編譯結果在執行完成后直接丟棄(多數時候如此,但仍有例外,比如使用compileall模塊可以強制編譯成pyc文件),但模塊會將內存中的編譯結果持久化到pyc文件中。另外,運行字節碼pyc文件并不會比直接運行py文件更快,執行它也一樣是一行行地解釋、執行,唯一快的地方在于導入裝載的時候無需重新編譯而已。

執行模塊文件(已完成編譯)的時候,按照一般的執行流程執行:一行一行地、以代碼塊為單元執行。一般地,模塊文件中只用來聲明變量、函數等屬性,以便提供給導入它的模塊使用,而不應該有其他任何操作性的行為,比如print()操作不應該出現在模塊文件中,但這并非強制。

總之,執行完模塊文件后,這個模塊文件將有一個自己的全局名稱空間,在此模塊文件中定義的變量、函數等屬性,都會記錄在此名稱空間中。

最后,模塊的這些屬性都會保存到模塊對象中。由于這個模塊對象賦值給了模塊變量b,所以通過變量b可以訪問到這個對象中的屬性(比如變量、函數等),也就是模塊文件內定義的全局屬性。

只導入一次

假設a.py中導入了模塊b和模塊sys,在b.py中也導入了模塊sys,但python默認對某個模塊只會導入一次,如果a.py中先導入sys,再導入b,那么導入b并執行b.py的時候,會發現sys已經導入了,不會再去導入sys。

實際上,python執行程序的時候,會將所有已經導入的模塊放進sys.module屬性中,這是一個dict,可以通過下面的方式查看已導入的模塊名:

>>>importsys

>>>list(sys.module.keys())

如果某個程序文件中多次使用import(或from)導入同一個模塊,雖然不會報錯,但實際上還是直接使用內存中已裝載好的模塊對象。

例如,b.py中x=3,導入它之后修改該值,然后再次導入,發現b.x并不會發生改變:

importb

print(b.x)#3

b.x=33

print(b.x)#33

importb

print(b.x)#33

但是python提供了reload進行多次重復導入的方法,見后文。

使用別名

import導入時,可以使用as關鍵字指定一個別名作為模塊對象的變量,例如:

importbasbb

bb.x=3

print(bb.x)

這時候模塊對象將賦值給變量bb,而不是b,b此時不再是模塊對象變量,而僅僅只是模塊名。使用別名并不會影響性能,因為它僅僅只是一個賦值過程,只不過是從原來的賦值對象變量b變為變量bb而已。

以上內容為大家介紹了Python導入模塊時的過程,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。

tags: python培訓
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
999久久久免费精品国产牛牛| 二级片在线观看| 欧美a级片免费看| 日本特黄特黄aaaaa大片 | 中文字幕97| 国产91素人搭讪系列天堂| 午夜在线影院| 一 级 黄 中国色 片| 二级片在线观看| 一本伊大人香蕉高清在线观看| 精品在线观看一区| 亚洲www美色| 欧美大片一区| 久久久成人影院| 国产亚洲免费观看| 一级毛片视频在线观看| 青青青草影院| 精品国产一区二区三区久| 免费一级片在线| 久久99中文字幕| 国产91素人搭讪系列天堂| 色综合久久天天综合观看| 国产视频一区二区在线观看| 精品国产一级毛片| 在线观看成人网| 黄视频网站免费观看| 国产麻豆精品高清在线播放| 国产欧美精品| 欧美激情一区二区三区视频高清 | 国产成+人+综合+亚洲不卡 | 免费毛片播放| 成人av在线播放| 日本特黄特色aaa大片免费| 韩国三级香港三级日本三级la | 高清一级片| 国产麻豆精品免费视频| 国产欧美精品| 黄视频网站免费看| 日韩在线观看视频网站| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产伦理精品| 欧美电影免费| 亚洲天堂免费| 午夜在线观看视频免费 成人| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 精品视频一区二区三区免费| 九九久久99| 国产成+人+综合+亚洲不卡 | 国产伦精品一区二区三区在线观看 | 日日爽天天| 久久国产精品永久免费网站| 欧美一区二区三区性| 高清一级淫片a级中文字幕| 高清一级毛片一本到免费观看| 欧美α片无限看在线观看免费| 国产伦精品一区二区三区在线观看 | 精品久久久久久中文| 青草国产在线观看| 一a一级片| 国产伦精品一区二区三区无广告| 欧美日本国产| 久久99中文字幕久久| 精品国产一区二区三区久| 欧美激情伊人| 久久精品欧美一区二区| 日本免费乱人伦在线观看| 成人高清免费| 91麻豆精品国产片在线观看| 久久国产影院| 精品国产一区二区三区精东影业| 日韩男人天堂| 亚洲第一色在线| 日韩av片免费播放| 国产极品白嫩美女在线观看看| a级精品九九九大片免费看| 国产伦精品一区三区视频| 欧美激情在线精品video| 日韩一级黄色片| 日韩男人天堂| 久久成人综合网| 久久精品人人做人人爽97| 青青久久国产成人免费网站| 国产视频一区二区在线观看| 日韩中文字幕在线观看视频| 欧美另类videosbestsex高清| a级精品九九九大片免费看| 毛片高清| 欧美国产日韩久久久| 欧美另类videosbestsex久久| 亚洲精品永久一区| 日韩专区亚洲综合久久| 一本高清在线| a级毛片免费观看网站| 可以在线看黄的网站| 欧美大片一区| 国产伦精品一区三区视频| 成人av在线播放| 四虎久久精品国产| 欧美α片无限看在线观看免费| 免费的黄视频| 欧美激情一区二区三区视频高清 | 亚洲精品久久久中文字| 国产美女在线一区二区三区| 国产精品1024永久免费视频| 国产a视频| 九九精品影院| 日韩在线观看免费| 99久久精品国产免费| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产精品1024永久免费视频| 一本伊大人香蕉高清在线观看| 一级片片| 精品视频免费观看| 欧美日本免费| 麻豆网站在线看| 久久99中文字幕| 精品视频一区二区| 欧美爱爱网| 日本免费看视频| 四虎影视久久久免费| 亚洲精品永久一区| 午夜精品国产自在现线拍| 成人免费网站久久久| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 一本高清在线| 免费一级片网站| 国产韩国精品一区二区三区| 精品国产一级毛片| 国产不卡精品一区二区三区| 欧美一级视频高清片| 青青青草视频在线观看| 久久国产精品只做精品| 高清一级淫片a级中文字幕| 亚洲精品中文字幕久久久久久| 国产成人精品综合在线| 久久精品欧美一区二区| 欧美激情一区二区三区视频| 91麻豆爱豆果冻天美星空| 久久国产精品自线拍免费| 91麻豆tv| 欧美国产日韩一区二区三区| 日本伦理网站| 欧美1区2区3区| 精品视频在线观看一区二区三区| 青青青草影院| 欧美a级v片不卡在线观看| 国产国产人免费视频成69堂| 久久久久久久网| 91麻豆精品国产自产在线| 欧美日本国产| 国产高清在线精品一区a| 久久国产影视免费精品| 一级毛片视频免费| 精品久久久久久免费影院| 精品视频在线观看免费| 国产麻豆精品免费密入口| 99久久精品国产免费| 午夜家庭影院| 一级女性全黄生活片免费| 久久福利影视| 二级片在线观看| 九九久久99综合一区二区| 国产视频久久久| 日本在线不卡视频| 高清一级片| 一级毛片视频在线观看| 99久久视频| 韩国毛片免费大片| 国产a视频精品免费观看| 一本伊大人香蕉高清在线观看| 亚洲女初尝黑人巨高清在线观看| 九九久久国产精品| 九九九网站| 成人高清免费| 天天色色网| 99色视频| 深夜做爰性大片中文| 国产亚洲免费观看| 91麻豆精品国产自产在线 | 黄色短视屏| 欧美激情伊人| 精品久久久久久免费影院| 欧美激情一区二区三区视频高清 | 国产一区二区精品久久91| 久久精品成人一区二区三区| 亚洲精品永久一区| 91麻豆精品国产自产在线| 精品视频在线观看一区二区| 国产精品自拍在线| 成人a级高清视频在线观看| 韩国三级一区| 免费的黄视频| 天天做日日干| 免费国产在线观看不卡| 亚洲精品影院久久久久久| 欧美国产日韩一区二区三区| 国产极品白嫩美女在线观看看| 日韩字幕在线| 青草国产在线观看| 黄视频网站免费看|