python包的中 _init _.py文件介绍
python包的中 _init _.py文件介紹
我們新建python包時(shí)常常會(huì)看到一個(gè)__init _.py文件。
作用介紹:
? 一:這個(gè)文件是屬于python包的,這個(gè)文件用作于標(biāo)識(shí)python包,當(dāng)一個(gè)文件夾有這個(gè)__init _.py文件時(shí),python將把其當(dāng)成一個(gè)模塊包進(jìn)行管理。你打開(kāi)文件可以發(fā)現(xiàn)文件是空的。
? 二:這個(gè)文件可以設(shè)置變量控制模塊的模糊導(dǎo)入,如下:
我現(xiàn)在再包K里面有2個(gè).py文件,如下圖片所示:
文件PY1.py內(nèi)容如下:
def holle1():print('holle1')文件PY2.py內(nèi)容如下:
def holle2():print('holle2')文件__ init.py __內(nèi)容如下:
__all__ = ['PY2'] print('__init__')現(xiàn)在我再另一個(gè)文件里面導(dǎo)入K包里面的全部模塊
from K import * PY2.holle2() PY1.holle1() #這里將拋出異常#輸出結(jié)果如下: '''__init__ #這里說(shuō)明了__init__.py被運(yùn)行了holle2這里拋出異常Traceback (most recent call last):......NameError: name 'PY1' is not defined '''拋出異常的原因很簡(jiǎn)單,原因是因?yàn)槲以赺_ init __.py文件里面設(shè)置了變量 _all _ 這個(gè)變量,這個(gè)變量設(shè)置的是當(dāng)將包內(nèi)的全部模塊進(jìn)行導(dǎo)入時(shí),‘*’號(hào)將代表 _ all _變量里面的模塊名。并且這里導(dǎo)入的是PY2文件,并不是init _.py文件,但是文件還是運(yùn)行了。所以說(shuō)init文件就是包的一部分,不單單是標(biāo)識(shí)作用。
三:當(dāng)成一個(gè)模塊來(lái)使用(不推薦)
現(xiàn)在我把_init _.py文件內(nèi)容更改成如下:
print('__init__') A = ['123']def InitFunction():print('This is the function of __init__.py')其他文件中:
import K print(K.A) print(type(K)) K.InitFunction()輸出結(jié)果如下:
__init__ ['123'] <class 'module'> This is the function of __init__.pyinit_
[‘123’]
<class ‘module’>
This is the function of _ init_.py
總結(jié)
以上是生活随笔為你收集整理的python包的中 _init _.py文件介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: iPhone 16 Pro概念图曝光 网
- 下一篇: python tqdm进度条打印