【Python函数与模块】(13)讲讲__init__.py
写在前面:以下出现包与模块的名称以及其中的方法可以参考博客:https://www.cnblogs.com/ac-chang/p/12673223.html
1. 注意是英文半角的双下划线
2. 将一个文件夹变成模块
3. 导入包实际是导入它的__init__.py
4. 一般为空,可以批量导入所需模块
__init__.py文件一般为空,而它在一个包下含有多个子文件时起到了很大的作用
例如:直接导入pay包,想要调用其子包中模块的方法
import pay
pay.alipay.pay()
程序报错:说在 'pay' 模块下没有找到 'alipay' 属性
然而,alipay实际上是pay的子文件,想要找到子文件中模块的方法,需要在pay下的__init__.py编写如下代码:
from . import alipay
from . import wechat_pay
这是再运行之前的例子,程序继续报错,不过这次报的是在 'pay.alipay' 下找不到 'pay' 属性
这是因为alipay是一个包,包下有tools模块,pay()方法在tools模块下,这时,需要在alipay下的__init__.py中编写如下代码:
from .tools import pay
from .tools import get_status
同理,wechat_pay下的__init__.py编写如下代码:
from .tools import pay
再次运行程序,正确执行了