大家新創建python即時常會看見__init_.py文件,接下來本文關鍵為大家介紹了有關Python庫中__init__.py文件的功效與使用方法的資料,原文中根據實例編碼推薦的十分詳盡,必須的小伙伴可以借鑒一下
序言
在Python施工中,大家經常能看到含有“__init__.py”文件信息文件目錄,在PyCharm中,含有這一文件信息文件目錄被稱之為Pythod的包文件目錄,與文件目錄的標志會有不同的表明。如圖所示,dir_example是1個空缺文件目錄,標志是一個文件夾圖標,而init_example底下_init__.py文件,其標志是一個包。
那么這樣的文檔有哪些作用,我們平常怎么使用呢?
一、__init__.py文件介紹
Python界定了兩類單肩包,基本包與類名包。基本包是一般單肩包,因為它存在Python3.2和更早版本號。1個基本包一般被完成為包括__init__.py文件的文件目錄。如果一個基本抱被導進時,這一__init__.py文件被隱式實行,其所界定對象被關聯到包的名字空間中。
這也是Python官方文檔上對__init__.py文件的描寫,我覺得他的意思非常簡單,也就是說Python文件都是根據文件目錄作為不同類型的控制器來組織,這一文件目錄被稱之為Python包文件目錄,Python可以通過檢索該目錄下文件來導進有關的控制器。可是并非所有的文件目錄都能被檢索加上,只有在清單中包括__init__.py文件時,這一文件目錄才能被Python當成是一個包文件目錄,從而檢索加上里邊的文檔。這么做能讓程序編寫者自身操縱什么文件目錄能夠被Python導進成包。
當某一清單中包括__init__.py文件時,Python在加入這一控制器以前,會第一實行這一文檔。因而,這一文檔也能被程序編寫者用于操縱界定包級別自變量。
總的來說,__init__.py文件最重要的的作用是2個:
當目錄下包括這一文檔時,Python會把它作為成包文件目錄,從而可以用importxx.xx的方法導進目錄下文件或是控制器。
應用__init__.py文件能夠控制器導進后的自變量與內容,有利于程序編寫者操縱。
下面我們就看好多個事例就可以。
二、__init__.py文件的應用實例
2.1、并沒有__init__.py文件的文件目錄,應用importxx.xx會出錯嗎?
看版本號,在相對較低的版本號(如3.2以下的),并沒有__init__.py文件的文件目錄無法使用importxx.xx導進有關控制器,但后面版本能夠。
2.2、在__init__.py文件中定義變量或是邏輯性將于導進情況下強制執行
比如,我們會有以下幾個目錄結構:
init_example/a_pkg/ __init__.py a.py init_test.py
即init_example工程底下個init_test.py文件和a_pkg文件目錄,a_pkg目錄下有__init__.py文件和一個a.py文件。
大家在a_pkg目錄下的__init__.py文件界定:
print("Hey,Iama__init__.pyfile")
那么,如果我們在init_test.py中內容如下:
froma_pkgimport*
實行init_test.py我們可以得到如下結果:
Hey,Iama__init__.pyfile
因為在froma_pkgimport*情況下,會第一實行a_pkg目錄下的__init__.py文件。
2.3、在__init__.py文件中定義變量或是方法,能夠被直接導入應用
還是上面的文件目錄,假如我們在a_pkg目錄下的a.py界定如下內容:
defa_method(): print("Iama_pkg!")
在a_pkg目錄下的__init__.py文件界定:
froma_pkg.aimporta_method
那么,大家在init_test.py中加入a_pkg可以直接加入a_method方法:
frominit_example.a_pkgimporta_methoda_method()
會打印如下內容:
Iama_pkg!
2.4、在__init__.py文件中使用__all__方法
__all__方法可以在__init__.py文件界定一些包或是自變量,能夠在使用
frominit_example.a_pkgimport*
時界定*表達的內容。
例如還是上面的內容,但是我們在a_pkg目錄下的__init__.py文件定義:
__all__=["a"]
那么,我們在init_test.py中使用下面的語句可以引入a模塊:
from a_pkg import* a.a_method()
這時候依然會打印如下內容:
I am a_pkg!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129035.html
摘要:模板函數到底長什么樣下面我們就可以來看看模板函數到底長什么樣了。當然,首先得創建一個模板文件。總結通過打印中間結果和分析代碼,我們已經大概知道了的模板是如何轉化成內容的。下一篇文章會闡述模板的各種語法所對應的動態函數內容。 web.py模板的實現原理 web.py的模板實現利用了Python的可執行對象的動態特性:根據模板內容和渲染函數的參數創建一個函數,該函數執行的時候會返回一個Te...
本文關鍵給大家介紹了python程序流程裝包派發實例詳細說明,感興趣的小伙伴可以參考去了解一下,希望可以有一定的幫助,祝愿大家多多的發展,盡早漲薪。 前言 python程序編寫時,部分人良好習慣可實現相同功能性的編碼放到同一個文件; 使用這個編碼只需import就行了; 下邊看這個事例。 testModel.py classTest: name='tom' ...
此篇文章關鍵闡述了PythonAsyncio生產調度基本原理詳細信息,Python.Asyncio是1個專而精的庫,它包括一些功效,而跟關鍵生產調度有關的思路除開三類可在等待目標外,還有其他某些功效,他們各自坐落于runners.py,base_event.py,event.py3個文檔中 序言 在本文《PythonAsyncio中Coroutines,Tasks,Future可在等待對象...
此篇文章關鍵闡述了PythonAsyncio中Coroutines,Tasks,Future可等候目標關聯及功效,文章內容緊扣主題進行詳盡的基本介紹,必須的朋友可以學習一下 前記 上一篇閱讀理解《Python中Async語法協同程序的完成》闡述了Python是如何用制作器來達到協同程序的及其PythonAsyncio根據Future和Task的封裝形式來達到協同程序的生產調度,但在Pyth...
摘要:是回調函數,當鏈接服務器和相應數據傳輸完畢時觸發本函數可選。僅僅是針對的,在中,已經沒有這個模塊了,取代它的是。由于以流式讀取文件,從而速度較快,切少占用內存,但是操作上稍復雜,需要用戶實現回調函數。 編寫模塊 模塊是程序 模塊就是一個擴展名為.py的Python程序。 編寫模塊 #!/usr/bin/env python # coding=utf-8 lang = python 引...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1982·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02