1. 模塊
以 .py
為后綴的文件,我們稱之為 模塊,英文名 Module。
模塊讓你能夠有邏輯地組織你的 Python 代碼段,把相關的代碼分配到一個模塊里能讓你的代碼更好用,更易懂。
假設現在有一個名為 demo.py
的文件,文件內容如下
name="Python編程時光"
print("導入成功")
直接使用 import 語句就可以導入,導入之后,就可以使用 模塊名.變量名
的方式訪問這個變量。
>>> import demo
導入成功
>>> demo.name
'Python編程時光'
在導入模塊的時候,有一個非常重要的全局變量需要掌握,那就是 __name__
這個變量。
現在把 demo.py
的內容改成
$ cat demo.py
print("__name__ 的值為: " + __name__)
當模塊被直接執行時, __name__
的值為 __main__
$ python demo.py
__name__ 的值為: __main__
當模塊被導入時, __name__
的值為 模塊名
>>> import demo
__name__ 的值為: demo
當該模塊被導入后,會在當前目錄下產生一個 叫做 __pycache__
的緩存文件夾。
$ tree
.
├── __pycache__
│ └── demo.cpython-39.pyc
└── demo.py
這個文件夾有什么用呢?
簡單來說,當你導入模塊的時候,Python解釋器會把模塊的代碼編譯成字節碼,并放入 __pycache__
文件夾中。
這樣以后再次運行的話,如果被調用的模塊未發生改變,那就直接跳過編譯這一步,直接去__pycache__
文件夾中去運行相關的 *.pyc 文件,大大縮短了項目運行前的準備時間。
2. 包
在早一點的 Python 版本(Python 3.3 之前)中,如果一個文件夾下有一個 __init__.py
文件,那我們就稱之為包,英文名 Package。
在后來的 Python 版本(Python 3.3 開始)中,就沒有這個要求了,只要是文件夾就可以當做包,我們稱之為空間命名包,為做區分,我把上面那種包稱之為 傳統包。
考慮到很多人其實并不需要接觸到空間命名包,所以我將空間命名包的內容單獨放在一節里,為選讀章節。
今天這節里主要講講傳統包的內容。
傳統包里的 __init__.py
可以為空文件,但一定要有該文件,它是包的標志性文件,在需要情況下可以在里面進行一些包的初始化工作。
$ tree
.
└── demo
├── __init__.py
├── bar.py
└── foo.py
一個包里可以有多個模塊,比如上面的 foo.py
和 bar.py
都屬于 demo 模塊。
如果要使用這些模塊,就需要這樣導入
>>> import demo.foo
成功導入 foo.py
>>> import demo.bar
成功導入 bar.py
或者這樣
>>> from demo import foo
成功導入 foo.py
>>> from demo import bar
成功導入 bar.py
3. 庫
Python 庫是指一定功能的代碼集合,通常認為他是一個完整的項目打包。
庫->包->模塊,是從大到小的層級關系!
庫:一個庫可能由多個包和模塊組成
包:一個包可能由多個模塊組成
模塊:一堆函數、類、變量的集合
審核編輯:符乾江
-
模塊
+關注
關注
7文章
2670瀏覽量
47340 -
python
+關注
關注
56文章
4782瀏覽量
84451
發布評論請先 登錄
相關推薦
評論