当前位置 : 主页 > 编程语言 > python >

包的概念

来源:互联网 收集:自由互联 发布时间:2022-10-26
包的概念和结构 当一个项目有多个模块时,需要再进行组织。我们将功能类似的模块放到一起,形成了‘包’。‘包’本质上就是必须有__init_ _.py的文件夹。 包下面可以包含‘模块(

包的概念和结构

当一个项目有多个模块时,需要再进行组织。我们将功能类似的模块放到一起,形成了‘包’。‘包’本质上就是必须有__init_

_.py的文件夹。

包下面可以包含‘模块(module)’,也可以包含‘子包(subpackage)’。就像文件夹下面可以有文件,也可以有子文件夹

一样。

pycharm中创建包

在pycharm开发环境中创建包,非常简单。在要创建包的地方单击右键:NEW--》python package即可,pycharm会自

动帮助我们生成带有__init__.py文件的包。

导入包操作和本质

例a\aa\module_AA.py

·import a.aa.module_AA

在使用时,必须加完整的名称来引用

·from a.aa import module AA

在使用时,直接可以使用模块名

·from a.aa.module_AA import fun_AA

在使用时,直接可以使用函数名

注:

·from package import item 这种语法中,item可以是包,模块,也可以是函数,类,变量

·import item1.item2 这种语法中,item必须是包或者模块,不能是其他。


导入包的本质其实是导入包的__init__.py文件。也就是说,‘import pack1’意味着执行了包pack1下面的__init__.py文件,

这样可以在__init__.py文件中批量导入我们需要的模块,而不再需要一个个导入。

__init__.py的三个核心作用:

·作为包的标识,不能删除。

·用来实现模糊导入。

·导入包实质是执行__init__.py文件,可以在__init__.py文件中做这个包的初始化、以及需要统一执行代码,以及批量

导入。

用*导入包

import*这样的语句理论上是希望文件系统找出包中所有的子模块,然后导入它们。这可能会花长时间等。python解决

方案是提供一个明确的包索引。

这个索引由__init__.py定义,__all__变量,该变量为一个列表,如上例a包下的__init__.py中,可定义__all__=['module_A

',  'module_A2']

这意味着,from sound.effects import * 会从对应的包中导入以上连个子模块;

【注】尽管提供import * 的方法, 仍不建议在生产中使用这种写法







上一篇:Python工具箱系列(十二)
下一篇:没有了
网友评论