__init__.py __all__和 __name__的作用及其用法

    __ init__.py 的作用及其用法: 包下的__init__.py 所在目录是一个模块包,本身也是一个模块,可用于定义模糊导入时要导入的内容。当我们导入一个包的时候,包下的__init__.py中的代码会自动执行,因此在某些大的项目被使用频率较高的模块,我们也可以用于批量导入模块。


    首先创建一个名为 package5的包,这个包的__init__.py 也自动生成,再创建 init_test.py。 创建子包 package_init, 同样这个包的__init__.py 也自动生成,最后创建 init_demo1.py 和 init_demo2.py



在这里插入图片描述



    分别给 init_demo1.py 和 init_demo2.py 随意加一个str



在这里插入图片描述



在这里插入图片描述



    当在 init_test.py 中 执行模糊导入 from package5.package_init import * 后,打印 init_demo1 的 str1 和 init_demo2 的 str2 变量时,都会出现报错



在这里插入图片描述



在这里插入图片描述



    可以在 package_init 包下的__init__.py 添加 __ all__ = [‘init_demo1’,‘init_demo2’],
__ all__ 的作用稍后下面会继续说明



在这里插入图片描述



    再次执行 init_test.py, 能正常打印出 2个变量值



在这里插入图片描述



    当导入包时,自动执行 __init __.py 里面的代码



在这里插入图片描述



在这里插入图片描述



    批量导入模块, 假设有3个常用的模块,可以添加到 __ init __.py



在这里插入图片描述



    导入 package_init,相当于已经自动导入以上3个模块



在这里插入图片描述



    __all__的作用及其用法 :上面已经演示了在包下的 __init __.py, 可用于标识模糊导入时的模块。


    在普通模块中使用时,表示一个模块中允许哪些属性可以被导入到别的模块中,在 all_demo1.py 中添加3个变量,以及 标明 __ all__ = [‘str1’,‘str2’], 表示只允许 str1,str2 变量被导入



在这里插入图片描述



    可见,当模糊导入模块时, str3 变量值是不能被打印出来的



在这里插入图片描述



    如果需要打印出 str3 变量,需要导入模块时指明



在这里插入图片描述



    __name__的作用及其用法: __name__这个系统变量显示了当前模块执行过程中的名称,如果当前程序运行在这个模块中, __ name __ 的名称就是__main __ 如果不是,则为这个模块的名称。__main__一般作为函数的入口, 也称主程序入口



在这里插入图片描述



    当 all_demo1.py 作为模块被导入时,结果为该模块名



在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值