python包的中_init_.py⽂件介绍
python包的中 _init _.py⽂件介绍
我们新建python包时常常会看到⼀个__init _.py⽂件。
作⽤介绍:
⼀:这个⽂件是属于python包的,这个⽂件⽤作于标识python包,当⼀个⽂件夹有这个__init _.py⽂件时,python将把其当成⼀个模块包进⾏管理。你打开⽂件可以发现⽂件是空的。
⼆:这个⽂件可以设置变量控制模块的模糊导⼊,如下:
我现在再包K⾥⾯有2个.py⽂件,如下图⽚所⽰:
⽂件PY1.py内容如下:
def holle1():
print('holle1')
⽂件PY2.py内容如下:
def holle2():
print('holle2')
⽂件__ init.py __内容如下:
__all__ =['PY2']
print('__init__')
现在我再另⼀个⽂件⾥⾯导⼊K包⾥⾯的全部模块
from K import*
PY2.holle2()
PY1.holle1()#这⾥将抛出异常
#输出结果如下:
'''
__init__      #这⾥说明了__init__.py被运⾏了
holle2
这⾥抛出异常
Traceback (most recent call last):
......
NameError: name 'PY1' is not defined
'''
抛出异常的原因很简单,原因是因为我在__ init __.py⽂件⾥⾯设置了变量 _all _ 这个变量,这个变量设置的是当将包内的全部模块进⾏导⼊时,‘*’号将代表 _ all _变量⾥⾯的模块名。并且这⾥导⼊的是PY2⽂件,并不是init _.py⽂件,但是⽂件还是运⾏了。所以说init⽂件就是包的⼀部分,不单单是标识
作⽤。
三:当成⼀个模块来使⽤(不推荐)
现在我把_init _.py⽂件内容更改成如下:
print('__init__')
python怎么读取桌面上的文件
A = ['123']
def InitFunction():
print('This is the function of __init__.py')其他⽂件中:
import  K
print(K.A)
print(type(K))
K.InitFunction()
输出结果如下:
__init__
['123']
<class 'module'>
This is the function of __init__.py
init_
[‘123’]
<class ‘module’>
This is the function of _ init_.py

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。