1. 程式人生 > >python中、模塊、包初識

python中、模塊、包初識

文件 相同 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中、模塊、包初識