python中包是什麼?有什麼作用? python中包的介紹
這篇文章帶給大家的內容是關於python中包是什麼?有什麼作用? python中包的介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
1.什麼是套件?
套件是一種透過".模組名稱"來組織python模組名稱空間的方式.我們穿件的每個資料夾都可以被稱為包.
但是要注意, 在python2中規定. 包內必須存在__init__.py檔.
創建包的目的不是為了運行, 而是被導入使用. 包只是一種形式而已,包的本質就是一種模組.
2.包的作用?
##包的本質就是一個資料夾,那麼資料夾唯一的功能就是將文件組織起來,隨著功能越寫越多,我們無法將所有功能都放在一個資料夾中,於是我們使用模組去組織功能,隨著模組越來越多,我們就需要用資料夾將模組檔案組織起來,以此來提高程式的結構性和可維護性.接下來建立一些套件用來後面的學習.套件很好創建,只需要一個資料夾,有__init__.py就可以了.import os os.makedirs('glance/api') os.makedirs('glance/cmd') os.makedirs('glance/db') l = [] l.append(open('glance/__init__.py','w')) l.append(open('glance/api/__init__.py','w')) l.append(open('glance/api/policy.py','w')) l.append(open('glance/api/versions.py','w')) l.append(open('glance/cmd/__init__.py','w')) l.append(open('glance/cmd/manage.py','w')) l.append(open('glance/db/__init__.py','w')) l.append(open('glance/db/models.py','w')) map(lambda f:f.close() ,l)
#policy.py def get(): print('from policy.py') #versions.py def create_resource(conf): print('from version.py: ',conf) #manage.py def main(): print('from manage.py') #models.py def register_models(engine): print('from models.py: ',engine)
import glance.db.models glance.db.models.register_models('mysql') from glance.api.policy import get get()
3.__init__.py是做什麼的?
不論我們使用哪種方式導入一個包, 只要是第一次導入套件或是套件的任何其他部分, 都會先執行__init__.py檔.這個檔案可以是空的, 但是也可以存放一些初始化的程式碼.那麼我們之前用的from xxx import * 能用在包的呼叫上嗎?可以,我們要在__init__.py檔中給出__all__來確定*導入的內容.print("我是glance的__init__.py⽂件. ") x = 10 def hehe(): print("我是呵呵") def haha(): print("我是哈哈") __all__ = ['x', "hehe"]
from glance import * print(x) # OK hehe() # OK haha() # 报错. __all__⾥没有这个⻤东⻄
# 在glance/api/version.py #绝对导⼊ from glance.cmd import manage manage.main() #相对导⼊ # 这种情形不可以在versions中启动程序. # attempted relative import beyond top-level package from ..cmd import manage manage.main()
# 在policy.py import versions
#如果我們程序的入口時policy,那此時程序是沒有任何問題的.但是如果我們在glance外面import了glance中的policy就會報錯.
原因是如果在外面訪問policy的時候.sys.path中的路徑就是外面.所以根本就不能直接找到versions模組.所以一定會報錯:
ModuleNotFoundError: No module named 'versions'
# 在test.py中 import glance
以上是python中包是什麼?有什麼作用? python中包的介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Linux終端中查看Python版本時遇到權限問題的解決方法當你在Linux終端中嘗試查看Python的版本時,輸入python...

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

在使用Python的pandas庫時,如何在兩個結構不同的DataFrame之間進行整列複製是一個常見的問題。假設我們有兩個Dat...

Uvicorn是如何持續監聽HTTP請求的? Uvicorn是一個基於ASGI的輕量級Web服務器,其核心功能之一便是監聽HTTP請求並進�...

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

攻克Investing.com的反爬蟲策略許多人嘗試爬取Investing.com(https://cn.investing.com/news/latest-news)的新聞數據時,常常�...
