python模塊
用來從邏輯上組織Python代碼(變量、函數(shù)、類,邏輯:實現(xiàn)一個功能),本質(zhì)就是.py結(jié)尾的Python文件(文件名:test.py,對應(yīng)的模塊名:test)
下例是個簡單的module_ys.py文件
def func:
print('hello ys')
import語句
模塊的引入
模塊定義好后,我們可以使用 import 語句來引入模塊,語法如下:
導(dǎo)入單個模塊:import module_name
導(dǎo)入多個模塊:import module1_name,module2_name
導(dǎo)入所有模塊內(nèi)的變量、函數(shù)(不建議使用):from module_ys import *
比如要引用模塊 math,就可以在文件最開始的地方用 import math 來引入。在調(diào)用 math 模塊中的函數(shù)時,必須這樣引用:
模塊名.函數(shù)名
import 導(dǎo)入與 from module_ys import *的區(qū)別:
1、import 導(dǎo)入方式和調(diào)用
導(dǎo)入:import module_ys
調(diào)用:module_ys.func
2、from 導(dǎo)入方式和調(diào)用
導(dǎo)入:from module_ys import *
調(diào)用:func
區(qū)別就在與:import導(dǎo)入方式在調(diào)用是可以只針對某一個函數(shù)進行調(diào)用。from的導(dǎo)入方式相當于把module_ys內(nèi)所有的變量和函數(shù)進行了導(dǎo)入,如果當前文件下也有一個重名的函數(shù),就會把module_ys內(nèi)的函數(shù)進行覆蓋,無法執(zhí)行,此時可通過from中的as參數(shù)進行更改,對原有函數(shù)設(shè)置別名。
可配合module_ys.py和main.py內(nèi)容進行理解from module_ys import logger as log_ys
module_ys.py內(nèi)容:
name='ys'def func:
print('hello ys')def logger:
print('in the logger')def running:
print('hello running')
main.py內(nèi)容:
import module_ys
from module_ys import logger
from module_ys import logger as log_ys#別名
print(module_ys.name)
module_ys.func
module_ys.logger
module_ys.runningdef logger:
print('in the log')
logger
log_ys
import本質(zhì)
import導(dǎo)入模塊的本質(zhì)就是把python文件解釋一遍
(import test test='test.py all code')
(from test import name name='code')
路徑搜索:import module_name-->module_name.py-->module_name.py的路徑-->sys.path
import導(dǎo)入包的本質(zhì)就是執(zhí)行該包下的_init_.py文件
在package下的_init_.py內(nèi)輸入:print('from the package')
在p.py內(nèi)調(diào)用import package,輸出結(jié)果:from the package,由此可見import導(dǎo)入包的本質(zhì)就是執(zhí)行該包下的_init_.py文件。
結(jié)語
聯(lián)系客服