<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
接著如何在python 中匯入 package的分享,這一次是在 package 下繼續巢狀一個 package ,
專案目錄如下:
pkg1 ---__init__.py ---mod1.py ------pkg2 ---------__init__.py ---------mod2.py
import pkg1.pkg2.mod2
我們嘗試將 mod2 進行匯入,這一次將先匯入 pkg1 然後 pkg2 最後匯入 mod2
import pkg1 import pkg2 import mod2
從輸出上來看,我們發現 mod1 並沒有自動被匯入進來。
import pkg1.pkg2.mod2 pkg1.pkg2.mod2.say_hi()
我們通過pkg1.pkg2.mod2.say_hi()
來存取 mod2 中 say_hi 函數。
print('pkg1' in sys.modules)#True print('pkg1.pkg2' in sys.modules)#True print('pkg1.pkg2.mod2' in sys.modules)#True
通過給匯入 module 起一個別名方式來快捷地存取 mod2 module 物件的屬性。python 會自動執行可以存取到 mod2 經過的 package ,通過輸出不難發現這些 package 已經被匯入,並新增到了 sys.modules 快取中。
import pkg1.pkg2.mod2 as mod2 mod2.say_hi()
pkg1 ---__init__.py ---mod1.py ------pkg2 ---------__init__.py ---------mod2.py main.py
在 pkg1 package 下 __init__.py
import pkg1.pkg2.mod2 print("import pkg1")
這我們在 pkg1 package 下的 __init__.py
檔案匯入 mod2 module 是絕對路徑 pkg1.pkg2.mod2。表示我們執行 __init__.py
檔案是在 pkg1 外面執行,所以路徑中也包含了 pkg1,對於這個 project 來說,main.py 是入口檔案,要執行這個專案,我們只需要執行資料夾下 main.py 檔案即可。pkg1 和 main.py 位於同一個目錄級別,任何子模組(sub-module)都是
import pkg1.pkg2.mod2 as mod2 mod2.say_hi()
為了解釋我們進一步說明,我們再去建立一個專案,專案下放兩個
main.py my_mod.py
import socket x=2 def say_hi(): print("say hi from my mod")
在 main.py 程式碼如下
import my_mod as mod print(mod.x) print(mod.socket.gethostname())
從而我們知道,我們在 main.py 匯入 my_mod 作為,然後在 my_mod 檔案匯入 socket module 可以通過 mod.socket 匯入。
server ---app.py
這裡我們 app.py 裡只新增了一個語句,在終端輸出
print("running app")
在 python 中,可以在目錄下搜尋指定的檔案並執行,python 直譯器提供 -m
引數可以讓我們指定module 名稱來執行一個 python module 檔案,所以可以通過下面語句來執行 server 資料夾下的 app.py 檔案。
python -m server.app
python 會在 sys.path
路徑搜尋 `server/app.py
我們也可以將 server 下的 app.py 重新命名為 __main__.py
如下
server ---__main__.py
這樣就可以直接通過 python -m server
語句來執行 server package 下的 __main__.py
檔案。當然我們可以同時在 server package 建立一個 __init__.py
和 __main__.py
兩個檔案。
到此這篇關於 python 中的 module 和 package 的文章就介紹到這了,更多相關 module 和 package 內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45