python中、模塊、包初識
阿新 • • 發佈:2017-05-29
文件 相同 version win site style __init__ spa 組織
模塊:邏輯上組織python代碼(變量、函數、類、邏輯:實現功能),以.py為結尾的python文件。(test.py 文件,對應的模塊名:test)
包:用來從邏輯上組織模塊的,本質就是一個目錄(帶有__init__.py的文件)。
導入方法:
import test
from test import *
from test import name,age
from test import name as name_test //從test中導入name變量後,變量名更改為name_test (防止當前模塊中也有‘‘name‘‘變量
import:(路徑搜索和搜索路徑)
導入模塊就是把被導入的模塊(python文件)解釋一遍.
導入包就是把被導入包中的__init__.py 解釋一遍.
在我們導入 文件/包 的時候,我們所搜索的路徑都是在當前文件(相同/同級)下中導入的,如果被導入的文件沒有和當前文件是(相同/同級)目錄下,單純的impot是導入不成功的。
這裏就要用到os.sys.path這個方法
>>> import os >>> os.sys.path [‘‘, ‘/Library/Frameworks/Python.framework/Versions/3.5/lib/python35.zip‘, ‘/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5‘, ‘/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/plat-darwin‘, ‘/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/lib-dynload‘, ‘/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages‘]
這裏os.sys.path 就是環境變量,如果說想要import 模塊/包,那都是從這個list中的路徑中查找 模塊/包 的,所以想要import不是同級目錄中的文件,可以把這個程序的目錄添加到環境變量中,然後再進行import就可以了 找到所要import文件的目錄,加到環境變量中。
abs_path = os.path.abspath(__file__) #當前文件的絕對路徑 base_path =os.path.dirname(abs_path) #當前目錄的父級目錄 os.sys.path.insert(0,base_path) #將目標文件的目錄添加到環境變量中,因為路徑搜索是從list第一個元素進行搜索,所以把目錄添加到第一位是為了能夠更快的查找,也防止在其他目錄下有與目標文件重名的文件.了能夠更快的查找,也防止在其他目錄下有與目標文件重名的文件.
python中、模塊、包初識