python包的init文件_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']

This is the function of __init__.py

init_

[‘123’] This is the function of _ init_.py

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值