開發與維運

初識包 | Python從入門到精通:高階篇之三十八

模塊化簡介 | Python從入門到精通:高階篇之三十七

包 Package

包也是一個模塊。
當我們模塊中代碼過多時,或者一個模塊需要被分解為多個模塊時,這時就需要使用到包。
普通的模塊就是一個py文件,而包是一個文件夾。
創建一個hello的文件夾,此時它並不是一個包。
我們可以通過新建一個模塊來驗證。

import hello

print(hello)

執行結果:

image.png

包中必須要一個 __init__.py 這個文件,這個文件中可以包含有包中的主要內容。

image.png

在__init__.py這個文件中定義

a = 10
b = 20

def test():
    print('test')

在新建的模塊中驗證:

print(hello.a)
print(hello.b)
hello.test()

執行結果:

image.png

在hello中新建a.py和b.py

image.png

在a.py中輸入:

c = 30

在b.py中輸入:

d = 40

將__init__.py中的a,b刪掉,此時在新建的模塊中輸出。

print(hello.a)

執行結果:

image.png

我們之所以建立包,是為了將相關的模塊放在一起,比如進行計算器的程序(加減乘除等操作)可以放在一個包中,方便管理,並且在引用的時候也可以根據需要去引用。
但是對於新建的模塊而言,如何引用hello的其他模塊呢?我們可以直接引用。

from hello import a , b

# print(a)
print(a.c)
print(b.d)

執行結果:

image.png
image.png
image.png

我們在新建a.py和b.py的時候會發現hello中多了一個__pycache__文件。

image.png

__pycache__ 是模塊的緩存文件。
py代碼在執行前,需要被解析器先轉換為機器碼,然後再執行。所以我們在使用模塊(包)時,也需要將模塊的代碼先轉換為機器碼然後再交由計算機執行。而為了提高程序運行的性能,python會在編譯過一次以後,將代碼保存到一個緩存文件中,這樣在下次加載這個模塊(包)時,就可以不再重新編譯而是直接加載緩存中編譯好的代碼即可。

配套視頻課程,點擊這裡查看

獲取更多資源請訂閱Python學習站

Leave a Reply

Your email address will not be published. Required fields are marked *