Python基礎之模組 包

2021-10-09 05:31:51 字數 4096 閱讀 5137

python 模組(module),是乙個 python 檔案,以 .py 結尾,包含了 python 物件定義和python語句。

模組能定義函式,類和變數,模組裡也能包含可執行的**。

1.1.2.1 import

# 1. 匯入模組

import 模組名

import 模組名1

, 模組名2..

.# 2. 呼叫功能

模組名.功能名(

)

import math

print

(math.sqrt(9)

)# 3.0

1.1.2.2 from…import…
from 模組名 import 功能1

, 功能2

, 功能3..

.

from math import sqrt

print

(sqrt(9)

)

1.1.2.3 from … import *
from 模組名 import

*

from math import

*print

(sqrt(9)

)

1.1.2.4 as定義別名
# 模組定義別名

import 模組名 as 別名

# 功能定義別名

from 模組名 import 功能 as 別名

# 模組別名

import time as tt

tt.sleep(2)

print

('hello'

)# 功能別名

from time import sleep as sl

sl(2

)print

('hello'

)

在python中,每個python檔案都可以作為乙個模組,模組的名字就是檔案的名字。也就是說自定義模組名必須要符合識別符號命名規則。

新建乙個python檔案,命名為my_module1.py,並定義testa函式。

def

testa

(a, b)

:print

(a + b)

在實際開中,當乙個開發人員編寫完乙個模組後,為了讓模組能夠在專案中達到想要的效果,這個開發人員會自行在py檔案中新增一些測試資訊.,例如,在my_module1.py檔案中新增測試**。

def

testa

(a, b)

:print

(a + b)

testa(1,

1)

此時,無論是當前檔案,還是其他已經匯入了該模組的檔案,在執行的時候都會自動執行testa函式的呼叫。

解決辦法如下:

def

testa

(a, b)

:print

(a + b)

# 只在當前檔案中呼叫該函式,其他匯入的檔案內不符合該條件,則不執行testa函式呼叫

if __name__ ==

'__main__'

: testa(1,

1)

import my_module1

my_module1.testa(1,

1)

如果使用from .. import ..from .. import *匯入多個模組的時候,且模組內有同名功能。當呼叫這個同名功能的時候,呼叫到的是後面匯入的模組的功能。

# 模組1**

defmy_test

(a, b)

:print

(a + b)

# 模組2**

defmy_test

(a, b)

:print

(a - b)

# 匯入模組和呼叫功能**

from my_module1 import my_test

from my_module2 import my_test

# my_test函式是模組2中的函式

my_test(1,

1)

當匯入乙個模組,python解析器對模組位置的搜尋順序是:

當前目錄

如果不在當前目錄,python則搜尋在shell變數pythonpath下的每個目錄。

如果都找不到,python會察看預設路徑。unix下,預設路徑一般為/usr/local/lib/python/

模組搜尋路徑儲存在system模組的sys.path變數中。變數裡包含當前目錄,pythonpath和由安裝過程決定的預設目錄。

如果乙個模組檔案中有__all__變數,當使用from *** import *匯入時,只能匯入這個列表中的元素。

__all__ =

['testa'

]def

testa()

:print

('testa'

)def

testb()

:print

('testb'

)

from my_module1 import

*testa(

)testb(

)

[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-hwkpsnij-1597499426661)(02-模組_包.assets/image-20190305175727272.png)]

包將有聯絡的模組組織在一起,即放到同乙個資料夾下,並且在這個資料夾建立乙個名字為__init__.py檔案,那麼這個資料夾就稱之為包。

[new] — [python package] — 輸入包名 — [ok] — 新建功能模組(有聯絡的模組)。

注意:新建包後,包內部會自動建立__init__.py檔案,這個檔案控制著包的匯入行為。

新建包mypackage新建包內模組:my_module1my_module2模組內**如下

# my_module1

print(1

)def

info_print1()

:print

('my_module1'

)

# my_module2

print(2

)def

info_print2()

:print

('my_module2'

)

import 包名.模組名

包名.模組名.目標

2.2.1.1 體驗
import my_package.my_module1

my_package.my_module1.info_print1(

)

注意:必須在__init__.py檔案中新增__all__ =,控制允許匯入的模組列表。

from 包名 import

*模組名.目標

2.2.2.1 體驗
from my_package import

*my_module1.info_print1(

)

import 模組名

from 模組名 import 目標

from 模組名 import

*

import 包名.模組名

from 包名 import

*

python基礎 模組 包

一 模組 1.模組是程式 任何python程式都可以作為模組匯入。程式的儲存也很重要,如果想把程式儲存在c python windows 目錄下,需要告訴直譯器在 尋找模組了。import sys 2.匯入模組 匯入模組只需要一次。import hello 在模組中定義函式 hello python...

Python基礎 模組和包

python 模組 module 是乙個 python 檔案,以 py 結尾,包含了 python 物件定義和python語句。模組能定義函式,類和變數,模組裡也能包含可執行的 1.1.2.1 import 1.匯入模組 import 模組名 import 模組名1 模組名2.2.呼叫功能 模組名....

python基礎 模組和包

目錄 每乙個專案是由乙個或多個模組組成。每乙個以.py結尾的檔案 python源 都是乙個模組 工具包 模組 工具包 中定義的全域性變數,類,函式都是可以提供給呼叫函式使用的工具。模組可以根據功能來進行設計,使得可以更有邏輯的組織 段,以及更好的復用。在日常工作開發中每個人可以負責自己的模組,主程式...