1. 程式人生 > >python之模組系列

python之模組系列

每個py檔案就是一個模組
現在程式開發檔案比較大,都放在一個檔案維護不便,拆分成多個,模組可增加檔案的重用率。
變數 模組的屬性值
函式 單獨的功能
類 相縱功能的組合
模組測試程式碼 臨時使用,被導用時不會執行

‘’’
使用模組的步驟
1,匯入模組
2.使用模組
·模組名.檔案或者函式
注意:第一次匯入模組的時候,檔案會從上往下走一遍
模組可以匯入多次,就不會執行模組的內容了
‘’’

 匯入模組
 import mode101
'''
imoprt 模組名 as  別名

import  mode101 as m 
m.say_hello()
print(m.name)
'''
'''
一行可以匯入多個模組
import  mode101,mode102,,,,

匯入多個模組

import mode101
import mode102 
import mode101,mode102

‘’’
‘’’
區域性匯入

from 模組名稱 import 變數名(函式名或者變數名)
匯入test函式,注意只能使用test函式不能使用其他內容
from mode102  import test
#呼叫函式
test
#就近原則
from mode102 import say_hello
say_hello()#hello world

def say_hello():
    print(hello python')

say_hello() #hello python

‘’’

from…import …as …別名
當匯入的模組和當前模組中的名稱相同的時候可以起別名進行區分。

from one_model import say_hello as sayhello
def say_hello():
    print('hello world')
sayhello()
say_hello()

‘’’
from 模組 inport*
from my_module import * 吧 my_module中所有的不是以下劃線(_)
開頭的名字都匯入到當前的位置,大部分情況下我們會把python程式不
應該使用這種匯入方式,因為*你不知道你匯入的什麼名字,很有可能會
覆蓋之前你定義的名字,而且可讀性極其的差

‘’’
模組搜尋路徑
當你匯入一個模組,Python解析器對模組位置的搜尋順序是:
1、當前目錄
2、如果不在當前目錄,Python則搜尋在shell變數PYTHONPATH下的每個目錄。
由sys模組的sys.path方法來規定

因為sys.path返回的資料型別是列表
1、列表可以修改、我們匯入的範圍也可以通過修改sys.path這個列表獲得暫時的修改。例如通過 sys.path.append()新增目錄,匯入額外目錄的模組。
2、列表是有序的,當搜尋的過程當中,在第一個路徑下搜尋到了,就停止搜尋。而且sys.path第一個路 徑是指令碼的當前路徑,所以禁止大家講自己的指令碼命名成模組的名稱。
因此需要注意的是:自己模組命名的時候不能和系統的模組名稱相同。
‘’’
_all_屬性

_all_屬性=[變數1,變數2.。]設定匯入模組的功能
_all_=['money','read1']
#這樣在拎一個檔案中用from my_module import*就這能匯入列表中規定的倆個名字
'''

pyc臨時檔案
為了提高載入模組的速度,python直譯器會在__pycache__目錄中下快取每個模組編譯後的版本,
之後,再次被匯入時,實際上匯入的是這個.pyc的臨時檔案。

‘’’
把模組當指令碼執行

_name_的值等於'_main_'
_name_的值等於模組名
作用:用來控制py檔案在不同的應用場景下執行不同的邏輯
if _name_=="_main_"
把_name_當模組使用  他就是模組名稱
當指令碼使用 他就是_main_


當模組的測試程式碼用
當程式的入口使用

‘’’