👏作者简介:大家好,我是爱敲代码的小王,优快云博客博主,Python小白
📕系列专栏:python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发
📧如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
🔥如果感觉博主的文章还不错的话,请👍三连支持👍一下博主哦
🍂博主正在努力完成2023计划中:以梦为马,扬帆起航,2023追梦人
🔥🔥🔥 python入门到实战专栏:从入门到实战
🔥🔥🔥 Python爬虫开发专栏:从入门到实战
🔥🔥🔥 Python办公自动化专栏:从入门到实战
🔥🔥🔥 Python数据分析专栏:从入门到实战
🔥🔥🔥 Python前后端开发专栏:从入门到实战
目录
包package的使用
包(package)的概念和结构
当一个项目中有很多个模块时,需要再进行组织。我们将功能类似的模块放到一起,形成了“包”。本质上,“包”就是一个必须有 __init__.py 的文件夹。
典型结构如下:
包下面可以包含“模块(module)”,也可以再包含“子包 (subpackage)”。就像文件夹下面可以有文件,也可以有子文件夹一 样。
上图中, a 是上层的包,下面有一个子包: aa 。可以看到每个包里 面都有 __init__.py 文件。
pycharm中创建包
在pycharm开发环境中创建包,非常简单。在要创建包的地方单击右键: New-->Python package 即可。pycharm会自动帮助我们生成带有 __init__.py 文件的包。
导入包操作和本质
上一节中的包结构,我们需要导入 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 文件内容:
import turtle
import math
print("导入a包")
b 包下的 module_B1.py 文件中导入 a 包,代码如下:
import a
print(a.math.pi)
执行结果如下:
导入a包
3.141592653589793
❤️如上测试我们可以看出python的设计者非常巧妙的通过 __init__.py 文件将包转成了模块的操作。
用 * 导入包
import * 这样的语句理论上是希望文件系统找出包中所有的子模块, 然后导入它们。这可能会花长时间等。Python 解决方案是提供一个 明确的包索引。 这个索引由 __init__.py 定义 __all__ 变量,该变量为一个列表,如上例 a 包下的 __init__.py 中,可定义 __all__ = ["module_A","module_A2"] 这意味着, from sound.effects import * 会从对应的包中导入以上两个子模块;
⚠️尽管提供 import * 的方法,仍不建议在生产代码中使用这种写法。
库(Library)
Python中库是借用其他编程语言的概念,没有特别具体的定义。
模块和包侧重于代码组织,有明确的定义。库强调的是功能性,而不是代码组织。 我们通常将某个功能的“模块的集合”,称为库。
标准库(Standard Library)
Python拥有一个强大的标准库。Python语言的核心只包含数字、字 符串、列表、字典、文件等常见类型和函数,而由Python标准库提 供了系统管理、网络通信、文本处理、数据库接口、图形系统、 XML处理等额外的功能。
Python标准库的主要功能有:
1、文本处理,包含文本格式化、正则表达式匹配、文本差异计算与合并、Unicode支持,二进制数据 处理等功能。
2 、 文件处理,包含文件操作、创建临时文件、文件压缩与归档、操作配置文件等功能
3、操作系统功能,包含线程与进程支持、IO复用、日期与时间处理、调用系统函数、日志 (logging)等功能
4 、 网络通信,包含网络套接字,SSL加密通信、异步网络通信等功能
5、网络协议,支持HTTP,FTP,SMTP,POP,IMAP,NNTP,XMLRPC等多种网络协议,并提供了 编写网络服务器的框架
6、 W3C格式支持,包含HTML,SGML,XML的处理。
7、 其它功能,包括国际化支持、数学运算、HASH、Tkinter等。
目前学过的有:random、math、time、file、os、sys等模块。
1 random模块实现随机数处理
2 math模块实现数学相关的运算
3 time模块实现时间的处理
4 file模块实现对文件的操作
5 OS模块实现和操作系统的交互
6 sys模块实现和解释器的交互
第三方扩展库的介绍
强大的标准库奠定了python发展的基石,丰富和不断扩展的第三方库是python壮大的保证。我们可以进入PyPI官网 (https://pypi.org):
可以看到发布的第三方库达到了十多万种,众多的开发者为Python 贡献了自己的力量。
表 常用第三方库大汇总
PIP模块管理工具
pip 是一个现代的,通用的Python包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。
安装第三方扩展库的2种方式
第三方库有数十万种之多,以pymysql库为例讲解第三方扩展库的安装。
第一种方式:命令行下远程安装
1、 pip更换数据源(由于访问国外网站慢,建议更换):
家目录中,创建 pip 目录,然后增加文件: pip.ini 内容拷贝下 面的即可(不要加其他字符):
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
Linux的家目录: ~ 增加目录和文件: ~/.pip/pip.conf
Windows的家目录是: c:/user/用户名 增加目录和文件: c:/user/用户名/pip/pip.ini
2 、其他数据源:
阿里云 http://mirrors.aliyun.com/pypi/simple/
豆瓣:http://pypi.douban.com/simple/
中国科学技术大学 : https://pypi.mirrors.ustc.edu.cn/simple
清华:https://pypi.tuna.tsinghua.edu.cn/simple
华中理工大学 : http://pypi.hustunique.com/simple
山东理工大学 :http://pypi.sdutlinux.org/simple
3 、以安装第三方pymysql库为例,在命令行提示符下输入: pip install pymysql 即可。
第二种方式:Pycharm中直接安装到项目中
在Pycharm中,依次点击: file-->setting-->Project 本项目名-->Project Interpreter
点击 + ,然后输入要安装的第三方库 pymysql ,再点击按钮 Install Package ,等待安装即可,几秒种后,即提示安装成功:
这样,我们就可以在项目中直接使用第三方库pymysql了。