首页 > 编程知识 正文

python的库和包(python模块有哪些)

时间:2023-05-03 11:53:56 阅读:102289 作者:920

目标

模块

发布模块

01. 模块

1.1模块概念

模块是Python程序架构的核心概念。

每个以扩展名py结尾的Python源代码文件都是一个模块。

模块名也是一个标识符,需要符合标识符的命名规则。

模块中定义的全局变量、函数和类都是提供给外界直接使用的工具。

模块就像工具箱。如果你想使用这个工具包中的工具,你需要先导入这个模块。

1.2导入模块的两种方式

1)进口进口

导入模块名称1,模块名称2

提示:导入模块时,每个导入都应该有一个专用行。

导入模块名称1

导入模块名称2

导入后

通过模块名使用模块——提供的工具全局变量、函数和类。

使用as指定模块的别名。

如果模块的名称太长,可以使用as来指定模块的名称,这样便于在代码中使用。

将模块名称1作为模块别名导入

注:模块别名应符合大驼峰命名法。

2)导入2)从…导入

如果您想从模块中导入一些工具,可以使用from … import方法。

导入模块名称是一次性导入模块中的所有工具,并通过模块名称/别名进行访问。

#从模块导入工具

从模块名称1导入工具名称

导入后

不需要模块名称。

可以直接使用模块——提供的工具全局变量、函数和类。

注意

如果两个模块具有相同名称的函数,则后来导入的模块的函数将覆盖先导入的函数。

开发时,导入代码要统一写在代码顶部,这样更容易及时发现冲突。

一旦发现冲突,您可以使用as关键字来别名其中一个工具。

从…导入*(知道)

#从模块导入所有工具

从模块名称1导入*

注意

不建议使用这种方法,因为没有提示重复的函数名,并且不容易排除问题。

1.3模块的搜索顺序[扩展]

当导入模块时,Python的解释器将:

在当前目录中搜索指定模块名的文件,如果有直接导入。

如果没有,请再次搜索系统目录。

开发时,命名文件,不要复制系统的模块文件。

Python中的每个模块都有一个内置的属性文件来查看模块的完整路径。

例子

随机导入

#生成一个从0到10的数字

rand=random.randint(0,10)

印刷(兰特)

注意:如果当前目录下有一个random.py文件,程序无法正常执行!

此时Python的解释器会在当前目录下加载random.py,而不是系统的random模块。

1.4原则——每个文件都应该可以导入。

独立的Python文件是一个模块。

导入文件时,文件中没有任何缩进的所有代码都将被再次执行!

实际开发场景

在实际开发中,每个模块都是独立开发的,大部分都有专门的人员负责。

开发人员通常会在模块下添加一些测试代码。

仅在模块中使用,但不执行导入其他文件。

名称属性

name属性可以做到这一点,测试模块的代码只会在测试用例中运行,而不会在导入时执行!

Name是Python的内置属性,它记录了一个字符串。

如果它是由其他文件导入的,则该名称是模块名称。

如果是当前正在执行的程序,则名称为main

在许多Python文件中,您可以看到以下格式的代码:

#导入模块

#定义全局变量

#定义类

#定义函数

#在代码的底部

def main():

# .

及格

#根据__name__确定是否执行以下代码

if __name__=='__main__':

main()

02. 包(Package)

概念

包是包含多个模块的特殊目录。

目录中有一个特殊的文件init.py。

包名的命名方法与变量名相同,小写字母_

利益

使用导入包名称一次导入包中的所有模块。

案例演练

创建新的hm_message包

在目录中,创建两个新文件send_message和receive_message。

在send_message文件中定义一个发送函数。

在receive_message文件中定义接收函数。

用于直接从外部导入hm_message的包

init.py

要在外界使用 包 中的模块,需要在 init.py 中指定 对外界提供的模块列表

# 从 当前目录 导入 模块列表 from . import send_message from . import receive_message

03. 发布模块(知道)

如果希望自己开发的模块,分享 给其他人,可以按照以下步骤操作

3.1 制作发布压缩包步骤

创建 setup.pysetup.py 的文件

from distutils.core import setup

setup(name="hm_message", # 包名

version="1.0", # 版本

description="itheima's 发送和接收消息模块", # 描述信息

long_description="完整的发送和接收消息模块", # 完整描述信息

author="itheima", # 作者

author_email="itheima@itheima.com", # 作者邮箱

url="www.itheima.com", # 主页

py_modules=["hm_message.send_message",

"hm_message.receive_message"])

有关字典参数的详细信息,可以参阅官方网站:

https://docs.python.org/2/distutils/apiref.html

构建模块$ python3 setup.py build 生成发布压缩包 python3 setup.py sdist

注意:要制作哪个版本的模块,就使用哪个版本的解释器执行!

3.2 安装模块

$ tar -zxvf hm_message-1.0.tar.gz $ sudo python3 setup.py install

卸载模块

直接从安装目录下,把安装模块的 目录 删除就可以

$ cd /usr/local/lib/python3.5/dist-packages/ $ sudo rm -r hm_message*

3.3 pip 安装第三方模块

第三方模块 通常是指由 知名的第三方团队 开发的 并且被 程序员广泛使用 的 Python 包 / 模块

例如 pygame 就是一套非常成熟的 游戏开发模块

pip 是一个现代的,通用的 Python 包管理工具

提供了对 Python 包的查找、下载、安装、卸载等功能

安装和卸载命令如下:

# 将模块安装到 Python 2.x 环境 $ sudo pip install pygame $ sudo pip uninstall pygame # 将模块安装到 Python 3.x 环境 $ sudo pip3 install pygame $ sudo pip3 uninstall pygame

在 Mac 下安装 iPython

$ sudo pip install ipython

在 Linux 下安装 iPython

$ sudo apt install ipython $ sudo apt install ipython3

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。