Python 第十一节 第五课

举报
我是小白呀iamarookie 发表于 2021/09/10 23:53:58 2021/09/10
【摘要】 [toc] 3. 包 package 的使用 3.1 包 ( package ) 的概念和结构     当一个项目中有很多个模块时, 需要进行组织. 我们将功能类似的模块放到一起, 形成了 "包". 本质上, "包" 就是一个必须有__init__.py 的文件夹. 典型结构如下:  &nbsp...

[toc]

3. 包 package 的使用

3.1 包 ( package ) 的概念和结构

    当一个项目中有很多个模块时, 需要进行组织. 我们将功能类似的模块放到一起, 形成了 "包". 本质上, "包" 就是一个必须有__init__.py 的文件夹. 典型结构如下: 

    包下面可以包含 "模块 ( module )", 也可以再包含 "子包 ( subpackage )". 就像文件夹下面可以有文件, 也可以有子文件一样. 

    上图中, a 是上层的包, 下面有一个子包: aa. 可以看到每个包里面都有__init__,py 文件.

3.2 pycharm 中创建包

在 pycharm 开发环境中创建包, 非常简单. 在要创建包的地方单击右键: New --> Python package 即可. pycharm 会自动帮助我们生产带有__init__.py 文件的包.

3.3 导入包操作和本质

上一节中的包结构, 我们需要导入 module_AA.py. 方式如下:

    1. import a.aa.module_AA

        在使用时, 必须加完整名称来引用, 比如: a.aa.module_AA.funAA()

    2. from a.aa import module_AA

        在使用时可以直接使用模块名. 比如: module_AA.funAA()

    3. from a.aa.module_AA import fun_AA()

        在使用时, 直接可以使用函数名. 比如: fun_AA()

注:

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

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

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

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

__init__.py 的三个核心作用:

1. 作为包的标识, 不能删除

2. 用来实现模糊导入

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

 

 

 

 

文章来源: iamarookie.blog.csdn.net,作者:我是小白呀,版权归原作者所有,如需转载,请联系作者。

原文链接:iamarookie.blog.csdn.net/article/details/109140930

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。