【无为则无心Python基础】— 48、Python中的包
文章目录
- 一、制作包
- 1、创建包
- 2、在包内创建模块
- 二、导入包
- 1、方法一
- 2、方法二
- 三、关于`__pycache__`文件夹说明
- 四、Python标准库
- 模块、包和标准库的关系
包是将有联系的模块组织在一起,即放到同一个文件夹下,并且在这个文件夹创建一个名字为__init__.py
文件,那么这个文件夹就称之为包(包就是一个文件夹)。
换句话说,包也是一个模块,是一个更高级的模块。当我们模块中代码过多时,或者一个模块需要被分解为多个模块时,这时就需要使用到包,普通的模块就是一个.py
文件,而包是一个文件夹。引入了一个包,那包中的模块也能被引用了。
一、制作包
1、创建包
[New] — [Python Package] — 输入包名 — [OK] — 新建功能模块。
[New] — [Python Package]
输入包名 — [OK](或者回车)
可以看到项目目录导航窗口中,看到我们创建的包和包中的
__init__.py
文件。
注意:新建包后,包内部会自动创建
__init__.py
文件,这个文件控制着包的导入行为。
2、在包内创建模块
新建包内模块:
my_module1
和my_module2
[new] —> [Python File] —> 输入文件名
模块内代码如下
# my_module1
print(1)def info_print1():print('my_module1')
# my_module2
print(2)def info_print2():print('my_module2')
二、导入包
1、方法一
# 导入
import 包名.模块名# 调用包中模块的功能
包名.模块名.目标
示例:
# 导入包中模块--包名.模块名
import my_package.my_module1# 调用功能--包名.模块名.功能()
my_package.my_module1.info_print1()
2、方法二
# 导入包中功能
from 包名 import * 或者 功能名1、2、3...# 调用模块功能
模块名.目标
编辑__init__.py
文件中添加__all__ = []
__all__ = ['my_module1']
示例:
# 导包
from my_package import *# 调用__all__列表中定义模块的功能。
my_module1.info_print1()
注意:必须在
__init__.py
文件中添加__all__ = []
,控制允许导入的模块列表。
如果没有定义在__all__
列表中的模块,无法导入到指定文件中。
三、关于__pycache__
文件夹说明
在包中还有一个叫__pycache__
的文件夹,__pycache__
是模块的缓存文件夹。
Python代码在执行前,需要被解析器先转换为机器码,然后再执行,所以我们在使用模块(包)时,也需要将模块的代码先转换为机器码然后再交由计算机执行,而为了提高程序运行的性能,Python会在编译过一次以后,将代码保存到一个缓存文件中,这样在下次加载这个模块(包)时,就可以不再重新编译而是直接加载缓存中编译好的代码即可(避免重复解释)。
__pycache__
文件夹可以删除,但是以后在调用包中的模块时,还会重新解释模块,还会把解释器处理完的代码保存在__pycache__
文件夹中。
四、Python标准库
为了实现开箱即用的思想,Python中为我们提供了许多模块的标准库,在这个标准库中,有很多很强大的模块,提供我们可以直接使用,并且标准库会随Python的安装一同安装。
模块、包和标准库的关系
模块:就是一个
.py
文件,相当于一个工具类。包:将有联系的模块组织在一起,即放到同一个文件夹下,方便控制管理。
标准库:官方定义好的,具有相关功能模块的集合。如
os
和sys
等
总结:
这三个概念实际上都是模块,只不过是个体和集合的区别。
第三方库:就是由其他的第三方机构,发布的具有特定功能的模块。
【无为则无心Python基础】— 48、Python中的包相关推荐
- Python基础学习-Python中最常见括号()、[]、{}的区别 2015-08-13 07:54 by xuxiaoxiaoxiaolu, 1138 阅读, 0 评论, 收藏, 编辑 Pytho
Python基础学习-Python中最常见括号().[].{}的区别 2015-08-13 07:54 by xuxiaoxiaoxiaolu, 1138 阅读, 0 评论, 收藏, 编辑 Pytho ...
- 二十一. Python基础(21)--Python基础(21)
二十一. Python基础(21)--Python基础(21) 1 ● 类的命名空间 #对于类的静态属性: #类.属性: 调用的就是类中的属性 #对象.属性: 先从自己的内存空间里找名 ...
- python基础类型,Python基础-类
Python基础-类 @(Python)[python, python基础] 写在前面 如非特别说明,下文均基于Python3 摘要 本文重点讲述如何创建和使用Python类,绑定方法与非绑定方法的区 ...
- Python基础了解 python自带IDLE编译
目录 学习小标 学习产出: 前言 一.Python版本 二.语言运用的占比 2021年 6 月编程语言排行榜前 20名 三.Python的应用 1.Web开发 2.网络爬虫 3.大数据处理 4.人工智 ...
- 视频教程-扣丁学堂Python基础视频教程-Python
扣丁学堂Python基础视频教程 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥99.00 立即订阅 扫码下载「CSD ...
- 我的全栈之路-Python基础之Python概述与开发环境搭建
我的全栈之路-Python基础之Python概述与开发环境搭建 我的全栈之路 1.1 信息技术发展趋势 1.2 浅谈计算机系统架构 1.2.1 计算机系统架构概述 1.2.2 计算机硬件系统 1.2. ...
- python基础语法--python语言及其应用
python基础语法 python引言 python python语言是一种高级动态.完全面向对象的语言. python中函数.模块.数字.字符串都是对象. python完全支持继承.重载.派生.多继 ...
- Python基础之:Python中的模块
文章目录 简介 模块基础 执行模块 模块搜索路径 dir 包 包的相对路径 简介 Python的解释环境是很好用,但是如果我们需要编写一个大型的程序的时候,解释环境就完全不够用了.这个时候我们需要将p ...
- python添加库详细教程_Python 中如何自动导入缺失的库?|python基础教程|python入门|python教程...
https://www.xin3721.com/eschool/pythonxin3721/ 在写 Python 项目的时候,我们可能经常会遇到导入模块失败的错误:ImportError: No mo ...
- Python基础入门(中)--阿里云天池龙珠计划python训练营
一.学习内容概况 学习地址:天池龙珠计划python训练营 今天主要学习到的内容有: 列表 元祖 字符串 字典 集合 序列 二.具体学习内容 1.列表 简单数据类型 整型<class 'int' ...
最新文章
- 从零开始 Code Review,两年实战经验分享!
- 为Windows mobile编写设计友好的控件[Writing designer friendly controls for Windows Mobile]
- 移动端布局的几种方式
- c语言修仙受控可看吗,强推三本神奇到爆的小说,c语言修仙,程序员与修真会擦出什么火花...
- php列表代码怎么做的,php项目实战:代码讲解之订单列表问题
- php异业联盟平台源码,基于ThinkPHP5.1框架开发的B2C在线商城系统PHP源码
- 矿区无人机影像地物提取(语义分割)
- C#图片处理之:旋转图片90度的整数倍
- cycleGAN有matlab代码吗,CycleGAN的代码组成
- Android 使用RxJava实现一个发布/订阅事件总线
- 游戏筑基开发之测试篇(C语言)
- 微信公众号 获取推送消息
- 关于苹果字体的小知识
- 4412 使用小度wifi
- 五笔字根表识别码图_五笔输入法口诀(五笔字根表快速记忆图)
- NetworkManager 替代工具 wicd
- Python破解WIFI密码详细介绍
- 【离散数学】p^q^r为什么既是合取范式又是析取范式
- 深度:巨头覆盖之下中老年电商的创新突破策略-获客、选品、转化、粘性
- 2D图像像素点操作——平移,旋转,缩放 tcy
热门文章
- 为什么我觉得Python烂的要死?
- APT攻击、加密方式
- tiup cluster prune
- mc服务器libs文件夹,[综合|管理]McQQBot —— 在服务器上运行QQ机器人 并产生交互[1.8+]...
- OA办公系统快速升级方案,实现复杂流程和移动签批办公
- 《卓有成效的管理者》--- 读书笔记(四)
- 传统服务器与云服务器
- 拷贝文件产生副本_从Windows 10中删除文件后,文件的副本在文件历史记录中保留多长时间?...
- armu计算机科学排名2020,2020最新CPU性能排行榜天梯图
- 大数定律 与 中心极限定理 的理解