python從入門到放棄 3 模組

2021-10-14 06:34:15 字數 2210 閱讀 9774

python中,乙個.py檔案就稱之為乙個模組(module).模組中包含了python物件定義和python語句.

為了避免模組名衝突,python又引入了按目錄來組織模組的方法,稱之為包(package)

每乙個包目錄下面都會有乙個__init__.py 的檔案,這個檔案是必須存在的,否則,python就把這個目錄當成普通目錄,而不是乙個包。init.py 可以是空檔案,也可以有 python **,因為init.py 本身就是乙個模組,而它的模組名就是 mycompany。

模組是一組 python **的集合,可以使用其他模組,也可以被其他模組使用。

模組名要遵循 python 變數命名規範,不要使用中文、特殊字元;

模組名不要和系統模組名衝突,最好先檢視系統是否已存在該模組,檢查方法是在 python 互動環境執行 import abc ,若成功則說明系統存在此模組。

使用模組:

使用模組的第一步,就是匯入該模組:import sys

匯入 sys 模組後,我們就有了變數 sys 指向該模組,利用 sys 這個變數,就可以訪問 sys 模組的所有功能

sys 模組有乙個 ar** 變數,用 list 儲存了命令列的所有引數。 ar** 至少有乙個元素,因為第乙個引數永遠是該 .py 檔案的名稱,例如:

執行 python3 hello.py 獲得的 sys.ar** 就是[『hello.py』]

if __name__ == '__main__'

test()

當我們在命令列執行 hello 模組檔案時,python 直譯器把乙個特殊變數name置為main,而如果在其他地方匯入該 hello 模組時,if 判斷將失敗,因此,這種 if 測試可以讓乙個模組通過命令列執行時執行一些額外的**,最常見的就是執行測試。

from…import 語句:從模組中匯入乙個指定的部分到當前命名空間中

例如,匯入模組 fib 的 fibonacci 函式:

from lib import fibonacci
這個宣告只會把 fib 中的 fibonacci 單個引入到執行這個宣告的模組的全域性符號表.

當然也可以把乙個模組的全部內容匯入到當前的命名空間:

from math import *
模組搜尋路徑:當試圖載入乙個模組時,python 會在指定的路徑下搜尋對應的 .py 檔案,如果找不到,就會報錯

預設情況下,python 直譯器會搜尋當前目錄、所有已安裝的內建模組和第三方模組,搜尋路徑存放在 sys 模組的 path 變數中:

import  sys  

sys.path

如果要新增自己的搜尋目錄,有兩種方法:

一是直接修改 sys.path ,新增要搜尋的目錄:

import sys
這種方法是在執行時修改,執行結束後失效

二是設定環境變數 pythonpath,該環境變數的內容會被自動新增到模組搜尋路徑中。設定方式與設定 path 環境變數類似。

windows環境下:

set pythonpath=c:\python27\lib;
linux環境下:

set pythonpath=/usr/local/lib/python
在乙個模組中,我們可能會定義很多函式和變數,但有的函式和變數希望給別人使用,有的函式和變數希望僅僅在模組內部使用。在 python 中,是通過 _ 字首來實現的

正常的函式和變數名是公開的(public),可以被直接引用,比如:abc, x123,pi 等

類似***這樣的變數是特殊變數,可以被直接引用,但是有特殊用途,比如上面的author,namejiu是特殊變數, hello 模組定義的文件注釋也可以用特殊變數doc訪問

類似 _*** 和 __*** 這樣的函式或變數就是非公開的(private),不應該被直接引用,比如 _abc, __abc 等

變數是擁有匹配物件的名字(識別符號).命名空間是乙個包含了變數名稱和他們各自相應物件的字典.如果要給函式內的全域性變數賦值,必須使用 global 語句.

python 從入門到放棄

本人所有關於python的內容均為學習期間的整理的筆記,希望可以給學習者帶來些許幫助!不過一入it深似海!準備入行者請做好充分的心理準備!計算機的知識跟新迭代速度很快,不學習就會被淘汰!如果你打算入行然後找乙份安穩的工作安度餘生,那麼我還是建議去考公務員吧!這個行業可能並不適合你!有不少的人可能都覺...

核心模組編寫從入門到放棄

我是第一次接到寫核心模組的作業,基本是從零開始。該文章適合什麼都不會的小白圍觀,有錯誤希望指正。以我做的ip包加密任務為例,學習核心模組的編寫。使用的環境是ubuntu和c語言環境。核心模組的編寫和核心版本息息相關,不同的版本的核心函式名和資料結構名都不同,由於網上的教程一般比較老,因此在初學的時候...

Python 從入門到放棄(一)

列表 list 和元組 tuple python中有6中內建序列 sequence list,tuple,字串,unicode字串,buffer,xrange。序列和對映是兩種主要的容器 container 序列包括 list 和 tuple 對映包括 dict set 即不是序列又不是對映 序列操...