目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

Python全系列 教程

3567个小节阅读:5929.9k

收藏
全部开发者教程

鸿蒙应用开发

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(7.9k)
赞(0)

包package的使用

image-20211125163052711

包(package)的概念和结构

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

image-20211122095610300

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

image-20211122095624375

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

pycharm中创建包

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

image-20211122095712663

导入包操作和本质

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

  1. import a.aa.module_AA

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

  2. from a.aa import module_AA

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

  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. 导入包实质是执行__init__.py文件,可以在__init__.py文件中做这个包的初始化、以及需要统一执行代码、批量导入

【示例】测试包的__init__.py文件本质用法

a包下的__init__.py文件内容:

b包下的module_B1.py文件中导入a包,代码如下:

执行结果如下:

导入a包

3.141592653589793

❤️如上测试我们可以看出python的设计者非常巧妙的通过__init__.py文件将包转成了模块的操作。

实时效果反馈

1. 如下关于包的说法,错误的是:

A 功能类似的模块放到一起,就是“包”。本质上,“包”就是一个必须有__init__.py的文件夹

B 导入包的本质其实是“导入了包的__init__.py”文件。

C __init__.py作为包的标识,也可以删除

D 导入包实质是执行__init__.py文件,可以在__init__.py文件中做这个包的初始化

答案

1=>C

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2