模組是乙個包含所有你定義的函式和變數的檔案,其字尾名是.py。模組可以被別的程式引入,以使用該模組中的函式等功能。這也是使用python 標準庫的方法。
使用 python 原始檔,只需在另乙個原始檔裡執行 import 語句,語法如下
import module1[, module2[,... modulen]
當直譯器遇到 import 語句,如果模組在當前的搜尋路徑就會被匯入。搜尋路徑是乙個直譯器會先進行搜尋的所有目錄的列表,以下為乙個demo
def
test()
:print
("hello import"
)
import test
test.test(
)
輸出:
hello import
乙個模組只會被匯入一次
,不管你執行了多少次import。這樣可以防止匯入模組被一遍又一遍地執行。當我們使用import語句的時候,python直譯器是怎樣找到對應的檔案的呢?這就涉及到python的搜尋路徑,搜尋路徑是由一系列目錄名組成的,python直譯器就依次從這些目錄中去尋找所引入的模組。這看起來很像環境變數,事實上,也可以通過定義環境變數的方式來確定搜尋路徑。搜尋路徑是在python編譯或安裝的時候確定的,安裝新的庫應該也會修改。搜尋路徑被儲存在sys模組中的path變數
python 的 from 語句讓你從模組中匯入乙個指定的部分到當前命名空間中
from modname import name1[, name2[, ... namen]]
例如對上面匯入的test.py進行改變,增加乙個方法
def
print1()
:print
("hello import"
)def
print2()
:print
("no hello"
)
進行匯入:
from test import print1
print1(
)
只匯入print1方法
把乙個模組的所有內容全都匯入到當前的命名空間也是可行的
from test import*
print1()
print2()
乙個模組被另乙個程式第一次引入時,其主程式將執行。如果我們想在模組被引入時,模組中的某一程式塊不執行,我們可以用__name__屬性來使該程式塊僅在該模組自身執行時執行:
def
print1()
:print
("hello import"
)def
print2()
:print
("no hello"
)if __name__ ==
'__main__'
:print
("主程式在執行"
)else
:print
("其他在執行"
)
from test import
*print1(
)
執行test.py時會輸出:
主程式在執行
執行test2.py輸出:
其他在執行
hello import
內建的函式 dir() 可以找到模組內定義的所有名稱。以乙個字串列表的形式返回
import test
print
(dir
(test)
)
返回:
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'print1', 'print2']
python3使用 python3使用模組
python內建了很多非常有用的模組,只要安裝完畢,這些模組就可以立刻使用。我們以內建的sys模組為例,編寫乙個hello的模組 usr bin env python3 coding utf 8 a test module author michael liao import sys def tes...
Python3 使用模組
python本身就內建了很多非常有用的模組,只要安裝完畢,這些模組就可以立刻使用。我們以內建的sys模組為例,編寫乙個hello的模組 usr bin env python3 coding utf 8 a test module author michael liao import sys def ...
python3 常用模組 RE模組
一.常用正規表示式符號和語法 匹配所有字串,除 n以外 表示範圍 0 9 匹配前面的子表示式零次或多次。要匹配 字元,請使用 匹配前面的子表示式一次或多次。要匹配 字元,請使用 匹配字串開頭 匹配字串結尾 re 轉義字元,使後乙個字元改變原來的意思,如果字串中有字元 需要匹配,可以 或者字符集 re...