麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

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

手機站
千鋒教育

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

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

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

當前位置:首頁  >  技術干貨  > Python模塊的查找順序

Python模塊的查找順序

來源:千鋒教育
發布人:xqq
時間: 2023-11-07 11:35:09 1699328109

在上幾篇文章中已經用了如os,shutils,json等多個模塊,這些模塊都是python的內置模塊。相比之下,我們剛才使用的calc模塊就是自定義模塊。

假設我們使用importcalc導入calc模塊,python在啟動時按照什么樣的順序來查找這個模塊呢?

先查找內置(built-in)模塊中有沒有,如果沒有轉到2

查找sys.path變量指定的路徑下有沒有,有的話就使用,沒有就報錯

sys.path變量中存儲了那些路徑呢?

當前運行的python腳本所在的目錄

環境變量PYTHONPATH中的路徑,它和shell環境變量PATH差不多

這個變量可以使用python腳本在運行時修改它

默認的python安裝包的路徑

想要看下你的電腦當前sys.path有哪些路徑嗎?運行下面代碼就可以

importsys

print(sys.path)

查找模塊的順序是從前向后,只要查到就使用,因此這個變量存儲路徑的順序很重要。

模塊中包含執行語句的情況

如果引入的模塊中包含一些執行語句,那么在導入模塊時這些語句就會執行。但是即使同樣的模塊被導入了兩次,這些語句也只能執行一次。

來看下面的例子,定義calc模塊

print('Iamclacmodule')

defplus(a,b):

returna+b

defsubtract(a,b):

returna-b

并且在main.py中定義導入兩次calc模塊的函數

fromcalcimportplus

fromcalcimportsubtract

print(plus(1,2))

print(subtract(1,2))

結果是'Iamclacmodule'只會被打印一次。

用dir()函數來窺探模塊

dir()函數是python的內置函數,可用來獲取模塊的屬性,方法等信息,當我們剛接觸一個模塊,不清楚它由哪些有用的屬性和方法時,就可以用dir()來一探究竟。

以常用的json模塊為例,我們來展示下它的屬性和方法

importjson

print(dir(json))

#['JSONDecodeError','JSONDecoder','JSONEncoder','__all__','__author__','__builtins__','__cached__','__doc__','__file__','__loader__','__name__','__package__','__path__','__spec__','__version__','_default_decoder','_default_encoder','codecs','decoder','detect_encoding','dump','dumps','encoder','load','loads','scanner']

其中以雙下劃線開頭的變量,如__name__并非是模塊自己定義的,而是與模塊相關的默認屬性。

如果我想查看當前模塊內的所有屬性和方法呢?去掉dir()函數的參數就可以。拿上節的代碼為例來看下。

fromcalcimportplus

fromcalcimportsubtract

print(plus(1,2))

print(subtract(1,2))

print(dir())

#['__annotations__','__builtins__','__cached__','__doc__','__file__','__loader__','__name__','__package__','__spec__','plus','subtract']

我們會看到calc模塊的plus和substract方法也展示了出來,那么dir函數究竟是從哪里獲取的數據,背后的機理是什么呢?

其實每個模塊內部都有一個子集的私有符號表,它就是模塊內所有函數和方法共享的全局符號表。當模塊B導入模塊A時,就會把要導入的模塊A或者特定的方法,屬性放置到模塊B的全局符號表中,dir()函數也就是從模塊中的全局符號表中獲取出的值。

以上內容為大家介紹了Python模塊的查找順序,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。http://www.dietsnews.net/


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
主站蜘蛛池模板: 最近中文字幕mv在线视频www| 日本一卡二卡≡卡四卡精品| 国内精品伊人久久久影视| 欧美一区二区三区久久久人妖| 国产三级免费观看| 国产精品成人久久久久久久| 欧美特黄一片aa大片免费看| 国产欧美日韩综合精品二区| 久久精品无码一区二区日韩av| 男男18gay| 99热99操99射| 天堂在线观看中文字幕| 扁豆传媒在线入口| 2017狠狠干| 久久婷婷国产综合精品| 狠狠色狠狠色综合网| 啦啦啦手机完整免费高清观看| 欧美日韩电影在线观看| а√最新版在线天堂| 波多野结衣伦理视频| 精品久久久久久久久中文字幕| 亚洲高清视频免费| 三级黄色在线观看| 欧美激情第1页| 女人被躁免费视频| 色哟哟精品视频在线观看| 好吊妞视频这里有精品| 多人交换伦交视频| 大陆三级理论电影有哪些| 日本v电影| 男人j进入女人p狂躁免费观看| 欧美日韩一区二区综合| 日本videoshd高清黑人| 国产zzjjzzjj视频全免费| 百合潮湿的欲望| 国产黄色一级毛片| 国产精品无码久久av| 最近高清中文在线国语字幕| 岛国片在线观看| 最近中文字幕国语免费完整| 嫩草影院在线入口|