成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python庫中__init__.py文件的功效與使用方法實(shí)例詳細(xì)說明

89542767 / 924人閱讀

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


  序言


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

01.png

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


  一、__init__.py文件介紹


  Python界定了兩類單肩包,基本包與類名包。基本包是一般單肩包,因?yàn)樗嬖赑ython3.2和更早版本號(hào)。1個(gè)基本包一般被完成為包括__init__.py文件的文件目錄。如果一個(gè)基本抱被導(dǎo)進(jìn)時(shí),這一__init__.py文件被隱式實(shí)行,其所界定對(duì)象被關(guān)聯(lián)到包的名字空間中。


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


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


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


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


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


  下面我們就看好多個(gè)事例就可以。


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


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


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


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


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


  init_example/a_pkg/
  __init__.py
  a.py
  init_test.py


  即init_example工程底下個(gè)init_test.py文件和a_pkg文件目錄,a_pkg目錄下有__init__.py文件和一個(gè)a.py文件。


  大家在a_pkg目錄下的__init__.py文件界定:

  print("Hey,Iama__init__.pyfile")


  那么,如果我們?cè)趇nit_test.py中內(nèi)容如下:


  froma_pkgimport*


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


  Hey,Iama__init__.pyfile

  因?yàn)樵趂roma_pkgimport*情況下,會(huì)第一實(shí)行a_pkg目錄下的__init__.py文件。


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


  還是上面的文件目錄,假如我們?cè)赼_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()

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

  Iama_pkg!


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


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


  frominit_example.a_pkgimport*

  時(shí)界定*表達(dá)的內(nèi)容。


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

  __all__=["a"]


  那么,我們?cè)趇nit_test.py中使用下面的語句可以引入a模塊:


  from a_pkg import*
  a.a_method()


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

  I am a_pkg!

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/129035.html

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

    jlanglang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<