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

首頁 > 編程 > Python > 正文

python模塊導入的細節詳解

2020-02-16 00:03:16
字體:
來源:轉載
供稿:網友

python模塊導入細節

本文主要介紹了關于python模塊導入的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧

官方手冊:https://docs.python.org/3/tutorial/modules.html

可執行文件和模塊

python源代碼文件按照功能可以分為兩種類型:

用于執行的可執行程序文件 不用與執行,僅用于被其它python源碼文件導入的模塊文件

例如文件a.py和b.py在同一目錄下,它們的內容分別是:

# b.pyx="var x in module b"y=5# a.py:import bimport sysprint(b.x)print(b.y)

a.py導入其它文件(b.py)后,就可以使用b.py文件中的屬性(如變量、函數等)。這里,a.py就是可執行文件,b.py就是模塊文件,但模塊名為b,而非b.py。

python提供了一些標準庫,是預定義好的模塊文件,例如上面的sys模塊。

在此有幾個注意點,在后面會詳細解釋:

    模塊b的文件名為b.py,但import導入的時候,使用的名稱為b,而非b.py a.py和b.py是在同一個目錄下的,如果不在同目錄下能否導入? 在a.py中訪問b.py模塊中的屬性時,使用的是b.xb.y 上面都是直接以模塊名導入的,python還支持更復雜的包導入方式,例如導入abc/b.py時,使用import abc.b。下一篇文章會詳細解釋包的導入方式

python模塊搜索路徑

在a.py中導入模塊b的時候,python會做一系列的模塊文件路徑搜索操作:b.py在哪里?只有找到它才能讀取、運行(裝載)該模塊。

在任何一個python程序啟動時,都會將模塊的搜索路徑收集到sys模塊的path屬性中(sys.path)。當python需要搜索模塊文件在何處時,首先搜索內置模塊,如果不是內置模塊,則搜索sys.path中的路徑列表,搜索時會從該屬性列出的路徑中按照從前向后的順序進行搜索,并且只要找到就立即停止搜索該模塊文件(也就是說不會后搜索的同名模塊覆蓋先搜索的同名模塊)。

例如,在a.py文件中輸出一下這個屬性的內容:

# a.py:import sysprint(sys.path)

結果:

['G://pycode', 'C://Program Files (x86)//Python36-32//python36.zip', 'C://Program Files (x86)//Python36-32//DLLs', 'C://Program Files (x86)//Python36-32//lib', 'C://Program Files (x86)//Python36-32', 'C://Users//malong//AppData//Roaming//Python//Python36//site-packages', 'C://Program Files (x86)//Python36-32//lib//site-packages']

python模塊的搜索路徑包括幾個方面,按照如下順序搜索:

程序文件(a.py)所在目錄,即G://pycode 環境變量PYTHONPATH所設置的路徑(如果定義了該環境變量,則從左向右的順序搜索) 標準庫路徑 .pth文件中定義的路徑

需要注意,上面sys.path的結果中,除了

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乌鲁木齐县| 新民市| 太白县| 雷山县| 文水县| 滨海县| 台州市| 玉溪市| 福州市| 阳泉市| 庄浪县| 繁峙县| 钟山县| 龙井市| 沐川县| 阿勒泰市| 古浪县| 阿克陶县| 恩平市| 惠东县| 武宁县| 贵南县| 永兴县| 屏南县| 都安| 冕宁县| 梨树县| 日喀则市| 蛟河市| 兰考县| 年辖:市辖区| 博白县| 长武县| 巫山县| 安顺市| 隆安县| 法库县| 金门县| 兴义市| 八宿县| 巴彦淖尔市|