python 模块化__init__.py和__all__

模块化编程优势
模块化编程将一个任务分解成多个模块。
每个模块就像一个积木一样,便于后期的反复使用、反复搭建。
便于将一个任务分解成多个模块,实现团队开发,完成大规模程序。
实现代码复用。一个模块实现后,可以被反复调用。
可维护性增强

init.py
1.init.py的在文件夹中,可以使文件夹变为一个python模块,python的每个模块对应的包中都有一个__init__.py文件的存在

2.通常__init__.py文件为空,但是我们还可以为它增加其他的功能,我们在导入一个模块时候(也叫包),实际上导入的是这个模块的__init__.py文件。我们可以在__init__.py导入我们需要的模块,不需要一个个导入

3.init_.py 中还有一个重要的变量,叫做 all_。我们有时会使出一招“全部导入”,也就是这样:from PackageName import *,这时 import 就会把注册在包 init.py 文件中 all 列表中的子模块和子包导入到当前作用域中来。比如:
init.py

all = [“Module1”,“Module2”,“subPackage1”,“subPackage2”]

#或者是在__init__文件中


from .XX import XXX
from .XX import XXX

注意 .XX是__init__.py同目录文件下的XX.py文件,从里面import某个XXX函数。

这样,其他文件夹引用该函数文件的时候,就可以直接通过from X.XX import XXX来引用XXX函数。

当然,除了上述方法还可以直接在需要这个函数的文件中直接使用
sys.path.append(path)

举例:

 

 

 

–all–

python模块中的__all__,用于模块导入时限制,如:from module import *

此时被导入模块若定义了__all__属性,则只有__all__内指定的属性、方法、类可被导入;若没定义,则导入模块内的所有公有属性,方法和类。

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值