python模組入門

2021-09-29 16:33:47 字數 2555 閱讀 1106

1.模組的基本概念

定義:模組是從邏輯上組織python**的形式

當**量變得相當大它的時候,最好把**分成一些有組織的**段,並為其取乙個名稱

這些**段中可能有定義好的成員變數或函式。

當我們需要使用該模組的成員變數或函式的時,我們可以匯入並使用它們

2.建立模組

模組物理層面上組織模組的方法時檔案,每乙個以.py作為結尾的python檔案都是乙個模組

模組名稱不能與系統已存在的模組重名

當呼叫模組是去掉字尾.py,如import random

3.模組搜尋路徑

模組的匯入需要乙個叫做『路徑搜尋』的過程

python在檔案系統的『預定義區域』中查詢要呼叫的模組

搜尋路徑在sys模組中定義

>>> import sys

>>> print(sys.path)

['', '/usr/local/lib/python36.zip', '/usr/local/lib/python3.6', '/usr/local/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/site-packages']

需要注意的是,如果你定義了乙個模組,就把他放在合適的位置,比如/usr/local/lib/python3.6 下

可以看到sys.path列表第乙個變數是『』,代表當前目錄下的模組

[root@myhost mnt]# ls                        #確認咋當前目錄下

mymode.py   

[root@myhost mnt]# python3             

>>> import mymode                             #可以匯入

>>> 

[root@myhost mnt]# cd ..                     #切換目錄

[root@myhost /]# python3

>>> import mymode                             #匯入失敗

traceback (most recent call last):  

file "", line 1, in

modulenotfounderror: no module named 'mymode'

>>> 

4.匯入模組

使用import匯入模組

模組變數或函式通過模組名.屬性呼叫

如果僅需要模組中的某些屬性,也可以單獨匯入

from random import randint

匯入random模組的randint方法

5.模組載入(load)

乙個模組只被載入一次,無論它被匯入多少次,因為當兩個檔案相互匯入的時候,防止了無限的相互載入

模組載入時,頂層**會自動執行,所以只將函式放入模組的頂層是良好的程式設計習慣

頂層**

1 pp = 3.14

2 3 def main():

4 print "pp:", pp

5 6 main()

7 8 #上面的第一行,第三行,第六行的**則是頂層**。

6.__name__: 對被呼叫的模組中的重名方法做判斷的工具

模組具有乙個__name__的特殊屬性

當在乙個python檔案中呼叫乙個模組時,這個模組的__name__就是它的模組名

而在自己的檔案中輸出__name__時,輸出結果為__main__

假設有兩個檔案py1.py和py2.py,我們在py2.py中呼叫py1.py

#py1.py

2 #!/usr/bin/env python

3 def test():

4 print("this is py.1")

5

1 #py2.py

2 #!/usr/bin/env python

3 import py1

4 def test():

5 print("this is py.2")

67 test()

8 print (py1.__name__)

9 print (__name__)

輸出結果:

py1__name__

那為什麼說__name__是對被呼叫的模組中的重名方法做判斷的工具呢?

通過結果可以知道,py2.py直接執行,那麼內建變數__name__的值為__main__,否則為模組的名字,通過這個特性可以在if語句裡面新增測試**,可以提高減少bug,提高程式的健壯性。

if __name__ == '__main__':

test()

判斷__name__是否是__main 即確保這個方法是py2在呼叫

Python入門 模組

atestmodule.py usr bin env python3 coding utf 8 a test module def addfunc a,b return a b if name main print atestmodule計算結果 addfunc 1,1 anothertestmod...

python入門14模組

1.模組概述 為了解決難以維護的問題,我們把很多相似功能的函式分組,分別放到不同的檔案中。這樣每個檔案所包含的內容相對較少,而且對於每乙個檔案的大致功能可用檔名來體現 優點 1.提高 的可維護性 2.提高了 的復用度,當乙個模組完畢,可以被多個地方引用 3.引用其他的模組 內建模組和第三方模組和自定...

python入門 pickle模組

泡菜技術 胡豬豬 another list 建立列表 pickle file open my list.pkl wb 開啟,建立my list.pkl pickle.dump my list,pickle file 把my list放進去 pickle file.close 關閉 胡豬豬 anoth...