標籤:python模組
1、python中import匯入一個模組時,搜尋路徑可通過環境變數PYTHONPATH(如果設定了的話)查看或修改,該變數的內容是一組用冒號分割的目錄路徑,也可以通過sys.path查看或修改,它是包含每個獨立路徑的列表。sys.modules是一個字典,使用模組名作為鍵,對應物理地址作為值。import語句的模組順序一般為:標準庫模組、第三方模組、自訂模組。import語句可以匯入整個模組,from-impot語句則匯入模組中具體的屬性,還可以在匯入語句最後添加關鍵字as來起個別名。另外,模組可以從普通的目錄匯入,也可以從歸檔檔案(.zip檔案)匯入。
2、__builtins__模組和__builtin__模組不同,前者包含內建名稱空間中內建名稱的集合,可能全部來自後者,後者包含內建函數、異常以及其它屬性。
3、訪問一個屬性時,解譯器首先從局部名稱空間尋找,然後依次是全域名稱空間、內建名稱空間,直到找到為止,如果最後還沒有找到的話,會發生NameError異常。也就是說,先尋找的名稱空間會覆蓋後尋找的名稱空間中的屬性。
4、模組內建函數有哪些?
__import__():匯入模組函數,import語句調用這個函數完成工作。
globals():返回調用者全域名稱空間的字典。
locals():返回調用者局部名稱空間的字典。
reload():重新匯入一個已經匯入的模組。
5、包——包是一個有層次的檔案目錄結構,它定義了一個由模組和子包組成的python應用程式執行環境。包目錄要加入__init__.py檔案用於初始化模組。匯入模組時,支援絕對匯入和相對匯入。
6、如果不想讓某個模組屬性被“frommodule import *”匯入,可以給不想匯入的屬性名稱前加上一個底線。
7、不同作業系統的檔案系統對大小寫區分可能是不一樣的,如果python在不區分大小寫情況下依然能夠正常匯入模組,必須指定一個叫做PYTHONCASEOK的環境變數。
8、python預設編碼格式為ASCII,其它格式(如UTF-8)可通過如下方式指定:
#!/usr/bin/env python#-*- coding: UTF-8 -*-
9、類似於C/C++標頭檔的交叉include,python會有匯入迴圈的情況,解決這個問題幾乎總是移除其中一個匯入語句,在別的地方匯入模組,而非檔案一開始的地方。
10、相關模組
imp:提供了一些底層的匯入者功能。
modulefinder:可以尋找python指令碼所使用的所有模組。
pkgutil:提供了多種把python包打包為一個“包”檔案分發的方法。類似site模組,它使用*.pkg檔案協助定義包的路徑,類似site模組使用的*.pth檔案。
site:和*.pth檔案配合使用,指定包加入python路徑的順序。
zipimport:匯入zip歸檔檔案中的模組,該功能已經自動開啟,所以並不需要在任何地方匯入這個模組。
distutils:該模組提供了對建立、安裝、分發python模組和包的支援,它還可以協助建立使用C/C++完成的python擴充。
python模組相關