最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中__init__.py文件的作用

 更新時(shí)間:2022年09月23日 15:00:03   作者:偶爾躺平的咸魚  
這篇文章主要介紹了Python中__init__.py文件的作用,在PyCharm中,帶有__init__.py這個(gè)文件的目錄被認(rèn)為是Python的包目錄,與普通目錄的圖標(biāo)有不一樣的顯示

1 init文件夾圖標(biāo)

在PyCharm中,帶有__init__.py這個(gè)文件的目錄被認(rèn)為是Python的包目錄,與普通目錄的圖標(biāo)有不一樣的顯示。
如下圖所示,data目錄沒有__init__.py,其圖標(biāo)是個(gè)文件夾圖標(biāo);而model下有_init__.py文件,其圖標(biāo)是一個(gè)包。所以__init__.py是Python中package的標(biāo)識

2 init.py導(dǎo)入包方式

__init__.py文件的一個(gè)主要作用是將文件夾變?yōu)橐粋€(gè)Python模塊,Python中的每個(gè)模塊的包中,都有__init__.py 文件。

python在解釋包的時(shí)候會(huì)給本模塊下的所有文件建立一個(gè)索引放在當(dāng)前路徑下的__init__.py文件中,如果沒有文件索引,即使import了指定的包,解釋器還是找不到這個(gè)模塊下的文件。如果一個(gè)文件夾下沒有__init__.py文件,不會(huì)被當(dāng)做一個(gè)模塊。

2.1 單個(gè)導(dǎo)入

# package
# __init__.py
import re
import urllib
import sys
import os
# a.py
import package 
print(package.re, package.urllib, package.sys, package.os)

注意這里訪問__init__.py文件中的引用文件,需要加上包名。

2.2 批量引入(定義__all__用來模糊導(dǎo)入)

我們在python中導(dǎo)入一個(gè)包時(shí),實(shí)際上是導(dǎo)入了它的__init__.py文件,這樣我們可以在__init__.py文件中批量導(dǎo)入我們所需要的模塊,而不再需要一個(gè)一個(gè)的導(dǎo)入。

使用__init__.py中的重要變量__all__, 將模塊全部導(dǎo)入。

# __init__.py
__all__ = ['os', 'sys', 're', 'urllib']
# a.py
from package import *

這就會(huì)將注冊在__init__.py文件中__all__列表中的模塊和包導(dǎo)入到當(dāng)前文件中來。

3 實(shí)例

假設(shè)我們的模塊包的目錄結(jié)構(gòu)如下:

- mypackage
- - subpackage_1
- - - test11.py
- - - test12.py
- - subpackage_2
- - - test21.py
- - - test22.py
- - subpackage_3
- - - test31.py
- - - test32.py

直接導(dǎo)入:

如果我們使用最直接的導(dǎo)入方式,將整個(gè)文件拷貝到工程目錄下,然后直接導(dǎo)入:

from mypackage.subpackage_1 import test11
from mypackage.subpackage_1 import test12
from mypackage.subpackage_2 import test21
from mypackage.subpackage_2 import test22
from mypackage.subpackage_3 import test31
from mypackage.subpackage_3 import test32

這樣的話,查找的時(shí)候也會(huì)麻煩,此時(shí)__init__.py就起到了簡化的作用。

init.py導(dǎo)入:

在mypackage/添加__init__.py程序,有三種寫入方式。

from mypackage.subpackage_1 import test11
from mypackage import *
from mypackage.subpackage_1 import *

4 其他常見問題

4.1 使用__init__.py文件的優(yōu)點(diǎn)

  • ①當(dāng)目錄下包含這個(gè)文件時(shí),Python會(huì)將其當(dāng)作成包目錄,進(jìn)而可以使用import xx.xx的方式導(dǎo)入目錄下的文件或者模塊。
  • ②使用__init__.py文件可以控制模塊導(dǎo)入時(shí)的變量和內(nèi)容,便于編程者的控制。(簡化作用)

4.2 沒有__init__.py文件的目錄,使用import xx.xx會(huì)報(bào)錯(cuò)嗎?

在較低的版本中(如3.2及以下),沒有__init__.py文件的目錄不能使用import xx.xx導(dǎo)入相關(guān)模塊,但是后面的版本可以。

4.3 根據(jù)導(dǎo)入模塊和主程序不同import方式

(1)如果導(dǎo)入的模塊和主程序在同個(gè)目錄下,直接import就行了

(2)如果導(dǎo)入的模塊是在主程序所在目錄的子目錄下,可以在子目錄中增加一個(gè)空白的__init__.py文件,該文件使得python解釋器將子目錄整個(gè)也當(dāng)成一個(gè)模塊,然后直接通過“import 子目錄.模塊”導(dǎo)入即可。

(3)如果導(dǎo)入的模塊是在主程序所在目錄的父目錄下,則要通過修改path來解決,有兩種方法:
①通過sys.path.append

import sys
sys.path.append('父目錄的路徑')  # '需要引用模塊的地址'

來改變。python解釋器就是通過sys.path去的尋找模塊的。sys.path是一個(gè)列表 list ,它里面包含了已經(jīng)添加到系統(tǒng)的環(huán)境變量路徑。

【注意】:這種方法是運(yùn)行時(shí)修改,腳本運(yùn)行后就會(huì)失效。

②直接修改環(huán)境變量:在windows中是 “ set 變量=‘路徑’ ” 例如:set PYTHONPATH=‘C:\test…’ 查看是否設(shè)置成功用echo %PYTHONPATH%,而且進(jìn)到python解釋器中查看sys.path,會(huì)發(fā)現(xiàn)已經(jīng)有了新增加的路徑了。這 種方式是永久的,一次設(shè)置以后一直都有效。在linux中是 “export 變量=‘路徑’ “,查看是” echo $變量 "

到此這篇關(guān)于Python中__init__.py文件的作用的文章就介紹到這了,更多相關(guān)Python__init__.py文件 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python 專題三 字符串的基礎(chǔ)知識

    Python 專題三 字符串的基礎(chǔ)知識

    在Python中最重要的數(shù)據(jù)類型包括字符串、列表、元組和字典等。本篇文章主要講述Python的字符串基礎(chǔ)知識。下面跟著小編一起來看下吧
    2017-03-03
  • python爬蟲中url管理器去重操作實(shí)例

    python爬蟲中url管理器去重操作實(shí)例

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于python爬蟲中url管理器去重操作實(shí)例,有需要的朋友們可以參考下。
    2020-11-11
  • python爬蟲爬取微博評論案例詳解

    python爬蟲爬取微博評論案例詳解

    這篇文章主要介紹了python爬蟲爬取微博評論,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • python標(biāo)準(zhǔn)庫OS模塊詳解

    python標(biāo)準(zhǔn)庫OS模塊詳解

    這篇文章主要介紹了python標(biāo)準(zhǔn)庫OS模塊詳細(xì)介紹,需要的朋友可以參考下
    2020-03-03
  • python使用Matplotlib繪制多種常見圖形

    python使用Matplotlib繪制多種常見圖形

    這篇文章主要介紹了python使用Matplotlib繪制多種常見圖形,文章圍繞主題展開詳細(xì)的用Matplotlib繪制內(nèi)容,需要的小伙伴可以參考一下
    2022-05-05
  • 國產(chǎn)化設(shè)備鯤鵬CentOS7上源碼安裝Python3.7的過程詳解

    國產(chǎn)化設(shè)備鯤鵬CentOS7上源碼安裝Python3.7的過程詳解

    這篇文章主要介紹了國產(chǎn)化設(shè)備鯤鵬CentOS7上源碼安裝Python3.7,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • Python Pickling 和 Unpickling 的區(qū)別

    Python Pickling 和 Unpickling 的區(qū)別

    Python中的Pickling和Unpickling是與數(shù)據(jù)序列化和反序列化相關(guān)的重要概念,本文主要介紹了Python Pickling和Unpickling的區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • Python練習(xí)之讀取XML節(jié)點(diǎn)和屬性值的方法

    Python練習(xí)之讀取XML節(jié)點(diǎn)和屬性值的方法

    這篇文章主要介紹了Python練習(xí)之讀取XML節(jié)點(diǎn)和屬性值的方法,通過parse函數(shù)可以讀取XML文檔,該函數(shù)返回ElementTree類型的對象,通過該對象的iterfind方法可以對XML中特定節(jié)點(diǎn)進(jìn)行迭代
    2022-06-06
  • 如何用Python數(shù)據(jù)可視化來分析用戶留存率

    如何用Python數(shù)據(jù)可視化來分析用戶留存率

    今天和大家來分享一些數(shù)據(jù)可視化方向的干貨,我們來嘗試用Python來繪制一下“漏斗圖”,感興趣的小伙伴和小編一起進(jìn)入課題吧,但愿大家會(huì)有所收獲
    2021-09-09
  • Python將字符串轉(zhuǎn)換為小寫字母的幾種常用方法

    Python將字符串轉(zhuǎn)換為小寫字母的幾種常用方法

    這篇文章主要介紹了Python中將字符串大寫字母轉(zhuǎn)小寫的四種方法:lower()方法簡潔高效,手動(dòng)ASCII轉(zhuǎn)換靈活可控,str.translate()性能優(yōu)化適合大數(shù)據(jù)處理,列表推導(dǎo)式實(shí)現(xiàn)代碼簡潔,總結(jié)方法優(yōu)缺點(diǎn)及適用場景,需要的朋友可以參考下
    2025-05-05

最新評論

缙云县| 中江县| 江达县| 寿阳县| 富源县| 皋兰县| 精河县| 莱州市| 乌鲁木齐市| 攀枝花市| 宜川县| 芷江| 乌兰县| 读书| 周至县| 府谷县| 当涂县| 扶余县| 巴彦淖尔市| 宁安市| 百色市| 杭州市| 惠来县| 富民县| 冕宁县| 游戏| 元阳县| 高邮市| 廊坊市| 甘泉县| 佳木斯市| 九龙县| 盐池县| 会泽县| 循化| 彭山县| 五大连池市| 水城县| 溧阳市| 连云港市| 廊坊市|