python入门须知:包、模块、库的含义、导入、 您所在的位置:网站首页 模块与库的区别在哪 python入门须知:包、模块、库的含义、导入、

python入门须知:包、模块、库的含义、导入、

2024-01-31 01:58| 来源: 网络整理| 查看: 265

概念

包:(Package)

包:是一个有层级的目录结构,包含n个模块或者n个子包,包中一定要有__init__.py文件,所以包只是一个组织方式,更加有条理,并不是必须的。

模块:(Module)

模块:是一个单独的.py文件,用于存放一些功能相关的代码,所以当然是应用实现的核心。

库:(Library)

库:是完成一个“大"功能的代码集合,表现形式通常是包。

三者的关系:

库可以是包的集合或者模块的集合,最主要是完成一个整体应用,侧重功能的完整性。 包是库的组织形式,使得在开发一个库的时候,如果有一些模块功能紧密相关,那么就放在一个包里,由于有很多模块,那么按照功能差异,可能会分给很多个包。最终,形成一个库。 模块:是一个单独的.py文件,用于实现一个小功能。

导入

在python中,一个包是一个带有特殊文件__init__.py的目录。__init__.py文件定义了包的属性和方法。

不过,它可以什么也不定义,可以只是一个空文件,但是必须存在。如果 __init__.py不存在,这个目录就仅仅是一个目录,而不是一个包,因此它就不能被import导入。

其实,我们在导入一个包时,实际上导入了它的__init__.py文件。

导入包:

import 包

导入模块:

1.import 包.模块 2.from 包 import 模块

注意:直接导入一个包,由于只是执行包中的__init__.py文件的内容,所以如果该文件为空,则不会导入任何包中的模块。所以我们有时会在__init__.py文件中对需要的模块进行导入,什么意思?下面给出了一篇文章,不但介绍了__init__.py文件的作用,也介绍了__all__的含义,由于已经写得很好也很精简,所以我就没有重写,直接搬运了:https://blog.csdn.net/guowujun321/article/details/80764468,大家可以支持原作者。

搬运开始

1、在使用PyCharm新建python package时,会发现生成的包里,有__init__.py 这个文件,而且这文件是空的。

既然是空的?那删了吧!

删了就悲剧咯,这货算是package的一个标识,IDE就是通过它来判断package的。

当然,它还有另外一个作用,暂且不提它,先说说__all__。

2、Python中的包和模块有两种导入方式:精确导入和模糊导入

以上图为例,精准导入,假如A.py里有函数A1(),A2()。

此时B.py需要引用它们,可以如下:

from hello.A import A1,A2

假如方法比较多,或许会偷懒,用模糊导入:

from hello.A import *

而__all__,则可以控制*所表示要引入的东西(模块,函数,类等):

如果将__all__里的sayA2去掉,B.py里就会报sayA2查找不到的错误。

3、__init__.py的用法:

当然__all__也可以在__init__.py里声明,__init__.py是上图hello目录下的,可以理解为,该目录下py文件的函数都统一到__init__.py来声明

此时B.py里只是引入hello目录,并未精准到py文件。

搬运结束

参考资料:

https://blog.csdn.net/li_101357/article/details/52923828 https://blog.csdn.net/zx870121209/article/details/81515649 https://blog.csdn.net/guowujun321/article/details/80764468



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有