国产探花免费观看_亚洲丰满少妇自慰呻吟_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的結果中,除了

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 卓资县| 大同县| 砚山县| 勐海县| 武安市| 高邮市| 宝坻区| 炉霍县| 定南县| 重庆市| 龙门县| 咸宁市| 阳山县| 共和县| 定边县| 延边| 马公市| 冀州市| 页游| 三亚市| 偏关县| 上栗县| 江阴市| 双城市| 旬阳县| 公主岭市| 汕尾市| 且末县| 宜兴市| 乌拉特中旗| 广丰县| 丰宁| 竹北市| 东乌| 留坝县| 常宁市| 中卫市| 庆云县| 江永县| 黄大仙区| 奇台县|