亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Python庫中__init__.py文件的功效與使用方法實例詳細說明

89542767 / 1188人閱讀

  大家新創(chuàng)建python即時常會看見__init_.py文件,接下來本文關(guān)鍵為大家介紹了有關(guān)Python庫中__init__.py文件的功效與使用方法的資料,原文中根據(jù)實例編碼推薦的十分詳盡,必須的小伙伴可以借鑒一下


  序言


  在Python施工中,大家經(jīng)常能看到含有“__init__.py”文件信息文件目錄,在PyCharm中,含有這一文件信息文件目錄被稱之為Pythod的包文件目錄,與文件目錄的標志會有不同的表明。如圖所示,dir_example是1個空缺文件目錄,標志是一個文件夾圖標,而init_example底下_init__.py文件,其標志是一個包。

01.png

  那么這樣的文檔有哪些作用,我們平常怎么使用呢?


  一、__init__.py文件介紹


  Python界定了兩類單肩包,基本包與類名包?;景且话銌渭绨?,因為它存在Python3.2和更早版本號。1個基本包一般被完成為包括__init__.py文件的文件目錄。如果一個基本抱被導(dǎo)進時,這一__init__.py文件被隱式實行,其所界定對象被關(guān)聯(lián)到包的名字空間中。


  這也是Python官方文檔上對__init__.py文件的描寫,我覺得他的意思非常簡單,也就是說Python文件都是根據(jù)文件目錄作為不同類型的控制器來組織,這一文件目錄被稱之為Python包文件目錄,Python可以通過檢索該目錄下文件來導(dǎo)進有關(guān)的控制器??墒遣⒎撬械奈募夸浂寄鼙粰z索加上,只有在清單中包括__init__.py文件時,這一文件目錄才能被Python當成是一個包文件目錄,從而檢索加上里邊的文檔。這么做能讓程序編寫者自身操縱什么文件目錄能夠被Python導(dǎo)進成包。


  當某一清單中包括__init__.py文件時,Python在加入這一控制器以前,會第一實行這一文檔。因而,這一文檔也能被程序編寫者用于操縱界定包級別自變量。


  總的來說,__init__.py文件最重要的的作用是2個:


  當目錄下包括這一文檔時,Python會把它作為成包文件目錄,從而可以用importxx.xx的方法導(dǎo)進目錄下文件或是控制器。


  應(yīng)用__init__.py文件能夠控制器導(dǎo)進后的自變量與內(nèi)容,有利于程序編寫者操縱。


  下面我們就看好多個事例就可以。


  二、__init__.py文件的應(yīng)用實例


  2.1、并沒有__init__.py文件的文件目錄,應(yīng)用importxx.xx會出錯嗎?


  看版本號,在相對較低的版本號(如3.2以下的),并沒有__init__.py文件的文件目錄無法使用importxx.xx導(dǎo)進有關(guān)控制器,但后面版本能夠。


  2.2、在__init__.py文件中定義變量或是邏輯性將于導(dǎo)進情況下強制執(zhí)行


  比如,我們會有以下幾個目錄結(jié)構(gòu):


  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中內(nèi)容如下:


  froma_pkgimport*


  實行init_test.py我們可以得到如下結(jié)果:


  Hey,Iama__init__.pyfile

  因為在froma_pkgimport*情況下,會第一實行a_pkg目錄下的__init__.py文件。


  2.3、在__init__.py文件中定義變量或是方法,能夠被直接導(dǎo)入應(yīng)用


  還是上面的文件目錄,假如我們在a_pkg目錄下的a.py界定如下內(nèi)容:


  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()

  會打印如下內(nèi)容:

  Iama_pkg!


  2.4、在__init__.py文件中使用__all__方法


  __all__方法可以在__init__.py文件界定一些包或是自變量,能夠在使用


  frominit_example.a_pkgimport*

  時界定*表達的內(nèi)容。


  例如還是上面的內(nèi)容,但是我們在a_pkg目錄下的__init__.py文件定義:

  __all__=["a"]


  那么,我們在init_test.py中使用下面的語句可以引入a模塊:


  from a_pkg import*
  a.a_method()


  這時候依然會打印如下內(nèi)容:

  I am a_pkg!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/129035.html

相關(guān)文章

  • web.py源碼分析: 模板(1)

    摘要:模板函數(shù)到底長什么樣下面我們就可以來看看模板函數(shù)到底長什么樣了。當然,首先得創(chuàng)建一個模板文件??偨Y(jié)通過打印中間結(jié)果和分析代碼,我們已經(jīng)大概知道了的模板是如何轉(zhuǎn)化成內(nèi)容的。下一篇文章會闡述模板的各種語法所對應(yīng)的動態(tài)函數(shù)內(nèi)容。 web.py模板的實現(xiàn)原理 web.py的模板實現(xiàn)利用了Python的可執(zhí)行對象的動態(tài)特性:根據(jù)模板內(nèi)容和渲染函數(shù)的參數(shù)創(chuàng)建一個函數(shù),該函數(shù)執(zhí)行的時候會返回一個Te...

    Rocko 評論0 收藏0
  • python程序流程裝包派發(fā)實例詳細說明

      本文關(guān)鍵給大家介紹了python程序流程裝包派發(fā)實例詳細說明,感興趣的小伙伴可以參考去了解一下,希望可以有一定的幫助,祝愿大家多多的發(fā)展,盡早漲薪?! ∏把浴 ython程序編寫時,部分人良好習(xí)慣可實現(xiàn)相同功能性的編碼放到同一個文件;  使用這個編碼只需import就行了;  下邊看這個事例?! estModel.py   classTest:   name='tom'  ...

    89542767 評論0 收藏0
  • PythonAsyncio生產(chǎn)調(diào)度基本原理詳細信息

      此篇文章關(guān)鍵闡述了PythonAsyncio生產(chǎn)調(diào)度基本原理詳細信息,Python.Asyncio是1個專而精的庫,它包括一些功效,而跟關(guān)鍵生產(chǎn)調(diào)度有關(guān)的思路除開三類可在等待目標外,還有其他某些功效,他們各自坐落于runners.py,base_event.py,event.py3個文檔中  序言  在本文《PythonAsyncio中Coroutines,Tasks,Future可在等待對象...

    89542767 評論0 收藏0
  • PythonAsyncio中Coroutines,Tasks,Future可等候目標關(guān)聯(lián)及功效

      此篇文章關(guān)鍵闡述了PythonAsyncio中Coroutines,Tasks,Future可等候目標關(guān)聯(lián)及功效,文章內(nèi)容緊扣主題進行詳盡的基本介紹,必須的朋友可以學(xué)習(xí)一下  前記  上一篇閱讀理解《Python中Async語法協(xié)同程序的完成》闡述了Python是如何用制作器來達到協(xié)同程序的及其PythonAsyncio根據(jù)Future和Task的封裝形式來達到協(xié)同程序的生產(chǎn)調(diào)度,但在Pyth...

    89542767 評論0 收藏0
  • Python基礎(chǔ)之(十)模塊

    摘要:是回調(diào)函數(shù),當鏈接服務(wù)器和相應(yīng)數(shù)據(jù)傳輸完畢時觸發(fā)本函數(shù)可選。僅僅是針對的,在中,已經(jīng)沒有這個模塊了,取代它的是。由于以流式讀取文件,從而速度較快,切少占用內(nèi)存,但是操作上稍復(fù)雜,需要用戶實現(xiàn)回調(diào)函數(shù)。 編寫模塊 模塊是程序 模塊就是一個擴展名為.py的Python程序。 編寫模塊 #!/usr/bin/env python # coding=utf-8 lang = python 引...

    jlanglang 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<