Python基礎刻意練習 Day17 模組

2021-09-29 06:45:44 字數 1729 閱讀 3546

day1:變數、運算子與資料型別

day2:條件與迴圈

day3&4:列表與元組

day5:字串與序列

day6&7:函式與lambda表示式

day8:字典與集合

day9&10:檔案與檔案系統

day11:異常處理

day12:else 與 with 語句

day13&14:類與物件

day15&16:魔法方法

day17:模組——>本文

模組是乙個包含所有你定義的函式和變數的檔案,其字尾名是.py。模組可以被別的程式引入,以使用該模組中的函式等功能。這也是使用 python 標準庫的方法。

在python中,使用import 語句匯入所需的模組

如(以匯入numpy模組為例):

當我們使用import語句的時候,python直譯器是怎樣找到對應的檔案的呢?

這就涉及到python的搜尋路徑,搜尋路徑是由一系列目錄名組成的,python直譯器就依次從這些目錄中去尋找所引入的模組。

這看起來很像環境變數,事實上,也可以通過定義環境變數的方式來確定搜尋路徑。

搜尋路徑是在python編譯或安裝的時候確定的,安裝新的庫應該也會修改。

搜尋路徑被儲存在sys模組中的path變數中。

>>

>

import sys

>>

> sys.path

#['', '/library/frameworks/python.framework/versions/3.7/lib/python37.zip', '/library/frameworks/python.framework/versions/3.7/lib/python3.7', '/library/frameworks/python.framework/versions/3.7/lib/python3.7/lib-dynload', '/users/lql70/library/python/3.7/lib/python/site-packages', '/library/frameworks/python.framework/versions/3.7/lib/python3.7/site-packages']

注意__name__ 與__main__ 底下是雙下劃線,小標題是那麼打是因為顯示不出來

乙個模組被另乙個程式第一次引入時,其主程式將執行。如果我們想在模組被引入時,模組中的某一程式塊不執行,我們可以用__name__屬性來使該程式塊僅在該模組自身執行時執行。

每個模組都有乙個__name__屬性,當其值是』main』時,表明該模組自身在執行,否則是被引入。

包是一種管理 python 模組命名空間的形式,採用"點模組名稱"。

比如乙個模組的名稱是 a.b, 那麼他表示乙個包 a中的子模組 b 。

就好像使用模組的時候,你不用擔心不同模組之間的全域性變數相互影響一樣,採用點模組名稱這種形式也不用擔心不同庫之間的模組重名的情況。

在匯入乙個包的時候,python 會根據 sys.path 中的目錄來尋找這個包中包含的子目錄。

目錄只有包含乙個叫做__init__.py 的檔案才會被認作是乙個包,主要是為了避免一些濫俗的名字(比如叫做 string)不小心的影響搜尋路徑中的有效模組。

最簡單的情況,放乙個空的__init__.py就可以了。當然這個檔案中也可以包含一些初始化**或者為(將在後面介紹的) __all__變數賦值。

python基礎刻意練習 day10

python基礎刻意練習 day10 檔案系統 我們所知道常用的作業系統有windows,mac os,linx,unix等,這些作業系統底層對於檔案系統的訪問工作原理是不一樣的,因此可能就要針對不同的系統來考慮使用哪些檔案系統模組。這樣是很麻煩的,因為這就意味著當程式的執行環境一改變,就要相應的去...

刻意練習Python基礎 day 10 異常處理

錯誤型別 說明assertionerror 斷言語句失敗 attributeerror 物件沒有這個屬性 indexerror 序列中沒有此索引 index indentationerror 縮排錯誤 importerror 匯入模組 物件失敗 nameerror 未宣告 初始化物件 沒有屬性 os...

pyhon基礎刻意練習 day14

python基礎刻意練習 day14 資料成員 類變數或者例項變數用於處理類及其例項物件的相關的資料。方法重寫 如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,這個過程叫方法的覆蓋 override 也稱為方法的重寫。區域性變數 定義在方法中的變數,只作用於當前例項的類。例項變數 在類的宣...