1、模塊的定義:
模塊定義:用來邏輯上組織python代碼(變量、函數、類、邏輯;目的是:實現一個功能),本質就是.py結尾的python文件。
補充:
包的定義:用來從邏輯組織模塊的,本質就是一個目錄(必須帶有一個__init__.py文件)
2、導入方法:
導入模塊的方法:
1.import module_name 導入一個模塊
使用的時候需要加上前綴module_name.name
2.import module_name,module2_name 導入多個模塊
3.from module_name import * 導入module_name模塊里邊的所有變量,不建議使用!
4.from module_name import name 只導入module_name里邊的name解釋了一遍。
使用的時候直接 name 調用即可
import 和from 的區別
1.import 的時候 module_name.logger()
2.from 的時候 logger() 直接執行;from的時候等於把所有代碼都復制了一份,執行一下。
解釋器:做的事就是指定一個變量 並指向一個內存地址,將代碼內容放在了內存地址里邊。
導入包的方法:
import 包的名字
多級目錄導入方法:
查看當前路徑:
import sys
sys.path
查找父及目錄
import os
os.path.abspath(__file__)
abspath() 當前文件的絕對路徑
__file__ 當前文件的文件名
os.path.dirname(os.path.abspath(__file__))
dirname() 獲取目錄名
os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
路徑加入
sys.path.append() 這樣會把路徑加入到python系統路徑列表的最后,不利於快速查找。
sys.path.insert() 這樣就會把路徑加入到python系統路徑列表的最前邊。
例子:
import sys,os
print(sys.path)
a = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(a)
print(sys.path)
from xxx import xxx
3、import本質(路徑搜索和搜索路徑)
導入模塊的本質: 就是把python文件解釋一遍
分析:import module_name - - -》就是要解釋module_name.py- - -》首先要找到module_name.py的位置- - -》查找系統路徑sys.path,當前路徑優先。
導入包的本質:就是執行該包下的__init__.py文件
導入包下邊的test1.py文件
1.修改__init__.py文件,導入包下邊的py文件
from . imprt test1
#import test1
2.在py文件中導入包下邊的模塊test1.py文件
4、導入優化
例如:
優化前:
module_test.py
def test():
print ("in the test!")
test.py
import module_test
def logger():
module_test.test()
print("in the logger!")
def search():
module_test.test()
print("in the search!")
View Code
優化后:
module_test.py
def test():
print ("in the test!")
test.py
from module_test import test
def logger():
test()
print("in the logger!")
def search():
test()
print("in the search!")
View Code
注意:
如果導入模塊的方法和目前環境中有沖突,導入的時候可以設置別名:
from module_test import test as test01