Python的模組 包等概念的理解

2022-03-21 13:51:07 字數 2586 閱讀 2520

python

包、模組與檔案系統的對應關係

包:對應於資料夾,模組:檔案

模組搜尋路徑

匯入乙個叫

spam

的模組時,直譯器先在當前目錄中搜尋名為

spam.py

的檔案,然後在環境變數

pythonpath

指向的目錄列表中搜尋,然後是環境變數

path

中的路徑列表。如果

pythonpath

沒有設定,或者檔案沒有找到,接下來搜尋安裝目錄,在

unix

中,通常是

/usr/local/lib/python

。實際上,直譯器由

sys.path

變數指定的路徑目錄搜尋模組,該變數初始化時預設包含了輸入指令碼(或者當前目錄),

pythonpath

和安裝目

錄使用該方法加入

sys.path

只能在執行時,下次執行編譯器時就不存在,這裡

modulepath

可以是包含

.py/pyc/pyo/pyw

等檔案的

zip或

模組import

前都會呼叫該檔案

因此,可以在

__init__.py

檔案中定義

__all__

通過定義列表

__all__

,模組可以精確控制

from module import *

匯入的名稱集合,比如

module.py

__all__ = [『bar』, 『someclassname』, 『someproperty』, 『somefunction』]

.表示與呼叫模組相同的目錄

..表示上級模組,比如

from .. import somemodule

import somepack

somepack.somemodule(xx) #

失敗! 但由於

import somepack

會執行somepack

下的__init__.py

,所以如果

__init__.py

中有 from . import somemodule

之類的語句,則

somepack.somemodule(xx)

可以執行。

一定的格式規範

新增setup.py

檔案

並非完全是解釋性語言,它是有編譯的,先把原始碼

py檔案編譯成

pyc或者

pyo,然後由

python

的虛擬機器執行,相對於

py檔案來說,編譯成

pyc和

pyo本質上和

py沒有太大區別,只是對於這個模組的載入速度提高了,並沒有提高**的執行速度,通常情況下不用主動去編譯

pyc檔案,文件上說只要呼叫了

import model

那麼model.py

就會先編譯成

pyc然後載入

pyc:預編譯過的

優化的預編譯

python -o -m py_compile file.py

windows

下.py

用python.exe

執行,.pyw

用pythonw.exe 執行跟

python.exe

比較起來,

pythonw.exe

有以下的不同:

1)執行時不會彈出控制台視窗(也叫

dos

視窗) 2

)所有向原有的

stdout

和stderr

的輸出都無效

3)所有從原有的

stdin

的讀取都只會得到

eof

.pyw

格式是被設計來執行開發完成的純圖形介面程式的。

純圖形介面程式的使用者不需要看到控制台視窗。

Python模組和包的概念

模組 模組是python組織 的基本方式。乙個python指令碼可以單獨執行,也可以匯入到另乙個指令碼中執行,當指令碼被匯入執行時,我們將其稱為模組 module 所有的.py檔案都可以作為乙個模組匯入。模組名與指令碼的檔名相同。模組是乙個可以匯入的python指令碼檔案。例如我們編寫了乙個名為he...

Python 模組和包的概念

python 模組和包的概念 模組 包 模組 modue 的概念 在電腦程式的開發過程中,隨著程式 越寫越多,在乙個檔案裡 就會越來越長,越來越不容易維護。為了編寫可維護的 我們把很多函式分組,分別放到不同的檔案裡,這樣,每個檔案包含的 就相對較少,很多程式語言都採用這種組織 的方式。在python...

Python 模組和包的概念

模組 modue 的概念 在電腦程式的開發過程中,隨著程式 越寫越多,在乙個檔案裡 就會越來越長,越來越不容易維護。為了編寫可維護的 我們把很多函式分組,分別放到不同的檔案裡,這樣,每個檔案包含的 就相對較少,很多程式語言都採用這種組織 的方式。在python中,乙個.py檔案就稱之為乙個模組 mo...