Python零基礎入門十八之模組

2021-07-26 04:33:33 字數 2542 閱讀 8545

這篇模組主要講解的是模組的相關知識,首先說下什麼是模組,簡答一句話就是說模組即程式,.我們可以任何一段程式作為乙個模組,在需要的時候直接匯入即可。

1.模組儲存在**

一般跟python的ide放在乙個目錄下,其他目錄如何放置下文將介紹

2.匯入模組的三種方法

(1)import +模組名

(2)from 模組名 import 函式名(多個函式名之間用逗號隔開),也可以使用*作為萬用字元

(3)import 模組名 as 新名字

3.使用模組中的方法

使用 模組名.方法名 即可

下面列舉乙個關於模組的簡單的例子:

首先在python.exe目錄下新建乙個convert.py模組,在裡面寫了華氏度與攝氏度相互轉換的兩個函式,**如下:

def

ctf(x):

return (32+x)*1.8

defftc

(x):

return (x-32)/1.8

然後在乙個另乙個程式中匯入模組,然後呼叫方法。

import convert

print(convert.ctf(100))

這裡只是使用了匯入包的第一種方法,其餘兩種方法類似,不過推薦使用第三種方法,尤其是模組名稱過長的時候。

4.如何做到」家醜不外揚」

如果模組中存在著測試**,又不想刪除,同時又不想讓引用模組時輸出無用的資料,我們可以使用「if _name_==』_main_『」語句。

例如我在剛剛的程式中加入測試語句。

def

ctf(x):

return (32+x)*1.8

defftc

(x):

return (x-32)/1.8

print("測試資料:",ctf(100))

然後再在另乙個呼叫模組的程式中執行該程式:

結果列印出了我們不想看到的一行資料。

我們可以這樣修改**:

def

ctf(x):

return (32+x)*1.8

defftc

(x):

return (x-32)/1.8

if __name__=='__main__':

print("測試資料:",ctf(100))

不要忘記if語句的格式與縮排再去執行一下程式:

這樣我們的「家醜」就不回外揚了。

再簡單的解釋一下為什麼這樣家醜就不回外揚了,其實列印幾個引數就明白了:

def

ctf(x):

return (32+x)*1.8

defftc

(x):

return (x-32)/1.8

print(__name__)

if __name__=='__main__':

print("測試資料:",ctf(100))

我們在剛剛的模組的程式中加入了print(name)加一句**,然後看其列印內容:

原來在模組中的namemain,而除了模組之外的name就不是main了,這樣就將問題解決了。

其實不難理解,只有在自己的程式中的name欄位的值才會為main.

5.搜尋路徑問題:進一步解決了模組放在**的問題

使用下面兩條語句,可以檢視python在執行語句時從**搜尋模組進行匯入。

import sys

print(sys.path)

sys.path
這樣便徹底解決了模組放在**的問題

6.包

包可以看作是乙個專門放置模組的資料夾,建立乙個包分為一下幾步:

(1)建立乙個資料夾,用於存放相關的模組,資料夾的名字即包的名字

(2)在資料夾中建立乙個init.py的模組檔案,內容可以為空,可以理解為這是乙個包的標識性檔案

(3)將相關的模組放入到資料夾中

匯入包與匯入模組類似:

import 包名.模組名 as 新名字

好了,關於模組的知識就到這了,以後再有會及時更新。

Python零基礎入門之函式

函式的命名空間和作用域 函式的三類命名空間 內建 全域性 區域性 兩大作用域 全域性 內建和全域性命名空間都屬於全域性作用域 區域性 區域性命名空間屬於區域性作用域 什麼是作用域鏈?就是由外而內的命名空間中的中的變數的生存週期都是就近原則 全域性作用域 大區域性作用域 小區域性作用域 函式的兩大引數...

Python零基礎入門

python零基礎入門 第一周前言 最近在簡單學習python,在之前的學習中也只對c語言有了乙個粗略的了解,可以說在程式設計方面沒有什麼基礎,當然這也是我第一次寫部落格,希望自己越學越好,希望自己加油 在這一周中,還是學習到了不少的東西,也希望把自己學到的東西寫下來,來加強對python的學習,若...

Python入門零基礎

開始認識 不要害怕面對一串密密麻麻的英文本元。如果你將它們獨自分開,你會發現它們就像英文單詞,都有固定的作用。不要被第一眼的陌生感所產生的恐懼給蒙蔽。而要將 看成 變數 可以用來儲存字面量,變數本身沒有任何意思 如 a hello world abc 1,dfg 2,c abc dfg。其中a ab...