Python模塊詳解以及import本質,獲得文件當前路徑os.path.abspath,獲得文件的父目錄os.path.dirname,放到系統變量的第一位sys.path.insert(0,x)


模塊介紹

1、定義:

模塊:用來從邏輯上組織python代碼(變量,函數,類,邏輯:實現一個功能),本質就是.py結尾的python文件(文件名:test.py,對應的模塊名:test)

包:用來從邏輯上組織模塊的,本質就是一個目錄(必須帶有一個__init__.py文件)

2、導入方法:

import module_name

引用腳本里的函數用方法module_name.logger()

import module1_name,module2_name

導入多個腳本模塊

from module_alex import *

這里相當於導入module_alex腳本文件里的所有代碼

from module_alex import m1,m2,m3

from module_alex import logger as logger_alex

這里相當於導入module_alex腳本里的logger函數,並給它起別名為logger_alex,注意這里的 logger不能寫成 logger()

用from的方法,這個想再引用module_alex里的函數或者變量,直接logger()就OK了。如果有別名那么直接執行logger_alex()

3、import本質(把模塊的所有代碼解釋了一遍,賦值給module_alex)

from module_alex import name的本質(把name這個代碼復制一份到當前腳本)

import本質(路徑搜索和搜索路徑)

導入模塊的本質就是把python文件解釋一遍,然后賦值給模塊名,(import test 相當於 test='test.py all code')

導入模塊的過程:找文件,找文件所在的路徑,找sys.path

所以 我們需要把當前腳本的絕對路徑的父父路徑,加到sys.path里去,這樣就可以找到其他模塊。

所以我們引入一個新模塊os,os.path.abspath(__file__)可以獲得當前模塊的絕對路徑

然后再通過os.path.dirname可以獲取到除文件名以外的路徑,我們使用2次,就可以得到父父級目錄,現在我們獲得了父父級目錄,我們把目錄加到 sys.path去,但是我們注意我們需要把這個目錄放到列表sys.path的第一個位置去~!

導入包的本質就是執行該包下面的__init__.py文件

4、導入優化

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM