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__')
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

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值