這篇模組主要講解的是模組的相關知識,首先說下什麼是模組,簡答一句話就是說模組即程式,.我們可以任何一段程式作為乙個模組,在需要的時候直接匯入即可。
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)加一句**,然後看其列印內容:
原來在模組中的name為main,而除了模組之外的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...