python中 __init__文件的作用

看过好几遍了,每次都记不住。好记性不如烂笔头,这次学了好好记一下

https://www.jianshu.com/p/73f7fbf75183

 

首先,如果一个文件没有__init__.py文件,他就不能叫做一个包,只能说是目录。那包和目录的区别在哪呢?

1. 简化模块导入操作

假设目录结构为:

 

 

 这样其他地方要使用其中某一个py文件时,导入方式是这样的:

 


 

 但是如果目录中有了 __init__.py,并在__init__.py中加入以下内容:

 

 

 

 

 

上面的语句等价于:

from mypackage import subpackage_1, subpackage_2

因此在其他地方导入时,只需要写import mypackage, subpackage_1 和 subpackage_2就会被导入。

 

可以被直接import语句导入的对象是以下类型:

  • 模块文件(.py文件)
  • C或C++扩展(已编译为共享库或DLL文件)
  • 包(包含多个模块)
  • 内建模块(使用C编写并已链接到Python解释器中)

 

 

 

 

 

 

 

 

 

1. 如果你写的不止给自己用,也给其他人用,那么设计成一个包更好

posted on 2020-09-07 00:55  mlllily  阅读(2167)  评论(0编辑  收藏  举报