python的__init__.py文件作用

在导入一个包的时候,Python 会根据 sys.path 中的目录来寻找这个包中包含的子目录,目录只有包含一个叫做 init.py 的文件才会被认作是一个包,并且后面的py文件都可以被认为是子模块而被import进来,而且__init__中的代码会在import的时候执行。
上例子
在pycharm中建了一个名叫test的包,下面自动生成__init__.py文件,我又新建了test1文件
在这里插入图片描述
在pycharm的终端(注意文件路径是test模块的父文件夹)输入python,然后import test模块
在这里插入图片描述

这时候先执行__init__.py,文件代码如下:

from .test1 import t2
from .test1 import t1
print("test")

from .test1 import t1意思是从test模块路径下的test1 python模块里面导入t1对象
test1.py代码如下:

print("it's test1.py")
class t1():
    print("it's class t1")
print("it's test1.py,repeat")
class t2():
    print("it's class t2")

因为调用了test1模块,所以里面的所有语句和类里面的语句都被执行,但是只执行一次,后面再from .test1 import t1就不执行了
在这里插入图片描述
init.py执行完之后那两个import之后,就执行print(),输出了test

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值