匯入模組 包

2022-08-20 19:00:10 字數 1474 閱讀 2320

什麼是模組:乙個模組就是包含了python定義和宣告的檔案,檔名就是模組名字加上.py

但其實import載入的模組分為4個通用類別。

1 使用python編寫的**

2 已被編譯為共享庫或dll的c或c++擴充套件

3 包好一組模組的包

4 使用c編寫並鏈結到python直譯器的內建模組

如何匯入模組

同級目錄下匯入spam模組:

#

spam.py

money = 1000

import spam

print(spam.money)

#1000

執行這個匯入命令會

1、執行匯入的模組檔案,並將模組名載入到記憶體,所以只有第一次匯入才會執行

2、把這個模組中的命名空間當做全域性命名空間

3、在當前位置拿到乙個模組名,可以指向2中的命名空間(spam.money)

#為模組名起名

import

spam as a

print(a.money)

#1000

#一行中匯入多個模組

import sys,os

1、這種匯入方式不必使用模組名加點的方式引用模組變數,直接使用變數名即可

from spam import money

print(money)

#1000

2、當前有重新定義的變數名則會覆蓋模組中的變數名

from spam import

money

money =1111

print

(money)

#1111

3、from spam import * 把spam中所有的不是以下劃線(_)開頭的名字都匯入到當前位置,大部分情況下我們的python程式不應該使用這種匯入方式,因為*你不知道你匯入什麼名字,很有可能會覆蓋掉你之前已經定義的名字。而且可讀性極其的差,在互動式環境中匯入時沒有問題。

在模組中使用

__all__=['money','read1']

則呼叫此模組時只有money和read1變數名可呼叫

python直譯器在啟動時會自動載入一些模組,可以使用sys.modules檢視

在第一次匯入某個模組時(比如spam),會先檢查該模組是否已經被載入到記憶體中(當前執行檔案的命名空間對應的記憶體),如果有則直接引用

如果沒有,直譯器則會查詢同名的內建模組,如果還沒有找到就從sys.path給出的目錄列表中依次尋找spam.py檔案。

所以總結模組的查詢順序是:記憶體中已經載入的模組->內建模組->sys.path路徑中包含的模組

需要特別注意的是:我們自定義的模組名不應該與系統內建模組重名。雖然每次都說,但是仍然會有人不停的犯錯。 

在初始化後,python程式可以修改sys.path,路徑放到前面的優先於標準庫被載入。

python模組匯入與模組包匯入

main.py程式第一次匯入指定檔案mod.py時,執行 找到模組檔案mod.py 編譯成位元組碼 可選 執行.pyc位元組碼,建立mod.py中定義的物件。匯入模組後,模組物件會被儲存在sys.modules的表中。每次匯入時,若此表中已存在相關模組,以上3步會被跳過。1.搜尋模組檔案 按順序 程...

python 包 模組匯入

os.getenv path 系統可執行程式位置 sys.path可匯入的python包位置 python module 的 path 屬性 可顯示每個包的檔案位置 what is pythonpath,what is python package what can we do with init ...

匯入模組 和 包

一 模組 模組一共三種 python標準庫 第三方模組 應用程式自定義模組 在cmd命令終端,檢視命令os 來自第三方 time模組來自第三方 模組兩種執行方式 1 用於啟動執行 2 用於被呼叫執行 key import module 將執行檔案 module 的目錄路徑插入到sys.path的第乙...