天天看點

Python之import關鍵字探索

java和python玩家對import關鍵字一點都不陌生,本文以python為例,試着了解一下。

可以猜到,在import子產品時,python會從環境變量中搜尋需要加載的子產品,這個清單就存放在sys.path變量中,可以進行修改。想要引入時,首先要将路徑放到環境變量中。

對環境變量臨時修改,将<code>/home/admin/git</code>添加進來,示例如下:

類似windows系統變量,在查詢時,也是按照清單的順序進行周遊

這個很容易了解,檔案查詢而已,有的是.py檔案,有的是帶目錄package的。

測試代碼和結果如下:

将這個函數補充完善一下, 其中<code>import_file_to_module</code>是将源碼弄成python子產品對象并傳回,還有,要将子產品的各類屬性給塞進去。以<code>json</code>為例,他的屬性清單(兩個'_'開頭結尾的)如下:

具體加載器實作如下:

用的最多的東西反而最容易被忽視,比如c語言printf(),c++的cout,ruby的require等等。

拿來玩一玩,跟挖寶一樣,蠻有意思的~~

<a href="https://ruby-china.org/topics/4897">pep 302是什麼?</a>

<a href="http://programmers.stackexchange.com/questions/154247/experience-of-pythons-pep-302-new-import-hooks">experience of python's “pep-302 new import hooks”</a>

繼續閱讀