對(duì)Python模塊導(dǎo)入時(shí)全局變量__all__的作用詳解
Python中一個(gè)py文件就是一個(gè)模塊,“__all__”變量是一個(gè)特殊的變量,可以在py文件中,也可以在包的__init__.py中出現(xiàn)。
1、在普通模塊中使用時(shí),表示一個(gè)模塊中允許哪些屬性可以被導(dǎo)入到別的模塊中,
如:全局變量,函數(shù),類(lèi)。如下,test1.py和main.py
test1.py
__all__=["test"] def test(): print('----test-----') def test1(): print('----test1----')
main.py
from test1 import * def main(): test() #test1() main()
兩個(gè)文件在同一個(gè)目錄下。
此時(shí)執(zhí)行python main.py時(shí)結(jié)果如下:
但是如果放開(kāi)main.py的注釋后,如下:
那么在模塊中的__all__變量就是為了限制或者指定能被導(dǎo)入到別的模塊的函數(shù),類(lèi),全局變量等,如果指定了那么只能是指定的那些可以被導(dǎo)入,沒(méi)有指定默認(rèn)就是全部可以導(dǎo)入,當(dāng)然私有屬性應(yīng)該除外。
2、在包下的__init__.py中
sound/effects/__init__.py中添加__all__ = ["echo", "surround", "reverse"]
那么就會(huì)在from sound.effects import *時(shí),包含上面三個(gè)模塊。當(dāng)__init__.py為空時(shí),只是導(dǎo)入這個(gè)包,并非導(dǎo)入模塊。
__init__.py中可以執(zhí)行一些初始化內(nèi)容,比如:
from . import test1 導(dǎo)入當(dāng)前目錄下的test1模塊
from .. import test 導(dǎo)入上一層目錄下的test模塊
因?yàn)閷?dǎo)入 包時(shí)會(huì)首先執(zhí)行下__init__.py這個(gè)文件
以上這篇對(duì)Python模塊導(dǎo)入時(shí)全局變量__all__的作用詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Python xlrd模塊導(dǎo)入過(guò)程及常用操作
- python3 動(dòng)態(tài)模塊導(dǎo)入與全局變量使用實(shí)例
- python模塊導(dǎo)入的方法
- python 中的列表生成式、生成器表達(dá)式、模塊導(dǎo)入
- python模塊導(dǎo)入的細(xì)節(jié)詳解
- 淺談python中requests模塊導(dǎo)入的問(wèn)題
- python 環(huán)境變量和import模塊導(dǎo)入方法(詳解)
- Python中的模塊導(dǎo)入和讀取鍵盤(pán)輸入的方法
- Python創(chuàng)建模塊及模塊導(dǎo)入的方法
- python 模塊導(dǎo)入問(wèn)題匯總
相關(guān)文章
Python的10道簡(jiǎn)單測(cè)試題(含答案)
這篇文章主要介紹了Python的10道簡(jiǎn)單測(cè)試題(含答案),學(xué)習(xí)了一段時(shí)間python的小伙伴來(lái)做幾道測(cè)試題檢驗(yàn)一下自己的學(xué)習(xí)成果吧2023-04-04Python 實(shí)現(xiàn)繪制子圖及子圖刻度的變換等問(wèn)題
這篇文章主要介紹了Python 實(shí)現(xiàn)繪制子圖及子圖刻度的變換等問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05Python進(jìn)行圖片驗(yàn)證碼識(shí)別方法步驟
這篇文章主要給大家介紹了關(guān)于Python進(jìn)行圖片驗(yàn)證碼識(shí)別的相關(guān)資料,基于Python和OpenCV的驗(yàn)證碼識(shí)別系統(tǒng)具有重要的研究意義和實(shí)際應(yīng)用價(jià)值,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-09-09import?paddle報(bào)錯(cuò)的成功解決方法
最近安裝paddle的時(shí)候遇到了些問(wèn)題,這里給大家總結(jié)下,下面這篇文章主要給大家介紹了關(guān)于import?paddle報(bào)錯(cuò)的成功解決方法,需要的朋友可以參考下2023-06-06使用Python holidays庫(kù)獲取中國(guó)節(jié)日的代碼示例
在軟件開(kāi)發(fā)中,處理節(jié)假日信息是一個(gè)常見(jiàn)需求,尤其是在進(jìn)行日期計(jì)算、日程安排和自動(dòng)化工作流時(shí),Python 提供了一個(gè)名為??holidays??的庫(kù),它能夠輕松獲取節(jié)假日信息,本文將重點(diǎn)介紹如何使用??holidays??庫(kù)獲取中國(guó)的節(jié)日,并提供詳細(xì)的代碼示例和應(yīng)用場(chǎng)景2024-07-07淺談keras中的目標(biāo)函數(shù)和優(yōu)化函數(shù)MSE用法
這篇文章主要介紹了淺談keras中的目標(biāo)函數(shù)和優(yōu)化函數(shù)MSE用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06python實(shí)現(xiàn)目錄樹(shù)生成示例
這篇文章主要介紹了python實(shí)現(xiàn)目錄樹(shù)生成示例,需要的朋友可以參考下2014-03-03Python?基于TCP?傳輸協(xié)議的網(wǎng)絡(luò)通信實(shí)現(xiàn)方法
網(wǎng)絡(luò)編程指在網(wǎng)絡(luò)環(huán)境中,如何實(shí)現(xiàn)不在同一物理位置中的計(jì)算機(jī)之間進(jìn)行數(shù)據(jù)通信,本文重點(diǎn)給大家介紹Python?基于TCP?傳輸協(xié)議的網(wǎng)絡(luò)通信實(shí)現(xiàn)方法,感興趣的朋友跟隨小編一起看看吧2022-02-02