python的import語句


1、import作用

import跟C/C++中的#include作用有點類似,都是為了調用定義在其他文件中的變量、函數或者類,但實現的區別很大。

     C/C++中如果a.cpp include了b.h那么b.h這個文件就原樣加到a.cpp文件中去了,這樣在b.h中的變量、函數、類就在a.cpp文件中聲明了,所以在a.cpp中能夠訪問。注意,這里的添加是C/C++原文件的添加。

     python中如果a.py import了b.py那么不是把b.py的原代碼加到a.py中,而是把b.py編譯為一個module類型的對象,保存到b.pyc文件中,然后讀取到內存中。在a.py中可以調用module對象中的變量、函數、類。其中b.py中的普通語句會在編譯的時候被直接執行。

 

  下面是一個import一個module(更應該說是include一個文件,將文件轉換成module對象包含進來。)

module_name.py

print("include module")

name = "jeck"

def func():
    print("hello world")
    

class test():
    def func(self):
        print("class hello world")

測試文件

import module_name      # 將module_name.py編譯成module對象包含進來

print(module_name.name) # 調用module對象中的變量
module_name.func()      # 調用module對象中的函數
a = module_name.test()  #  例化module對象中的類。
a.func()

輸出

include module        # 編譯時候直接執行了普通語句
jeck                  # 調用name變量
hello world           # 調用func函數 class hello world     # 調用test類的func函數

 

 

 2、import模塊的搜索順序

import module_name

  (1)、先去build_in的模塊中去查找

  (2)、build_in中沒有找到,就去sys.path中查找,sys.path的路徑包括:當前目錄、安裝python時的依賴位置、環境變量中的PYTHONPATH

 

  如果要引用直接定義的module,要不把文件放在調用文件相同的目錄中,要么把module的存放路徑加入到sys.path中,sys.path是一個列表,可以這樣添加路徑

sys.path.append("/home/ydh/py/lib/")

lib目錄為存放自己定義module的路徑。

3、import包

import包是import一個目錄,然后編譯目錄下的__init__.py文件,將__init__.py文件編譯成一個module對象包含到當前文件中來。

  

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM