0


Python 教程(九):内置模块与第三方模块

目录

专栏列表

  • Python教程(一):环境搭建及PyCharm安装
  • Python 教程(二):语法与数据结构
  • Python 教程(三):字符串特性大全
  • Python 教程(四):Python运算符合集
  • Python 教程(五):理解条件语句和循环结构
  • Python 教程(六):函数式编程
  • Python 教程(七):match…case 模式匹配
  • Python 教程(八):高级特性【高逼格代码】
  • Python 教程(九):内置模块与第三方模块

在这里插入图片描述

正文开始

如果觉得文章对您有帮助,请帮我三连+订阅,谢谢

💖💖💖


前言

前面几章的代码我们都是新建一个

xxx.py

文件来练习,但是随着代码越来越多,我们希望把一些代码分离出去,但是又能进行整合,这样及不会臃肿又可以让代码进行重用

Python 3 的模块系统是其核心特性之一,它允许你将代码组织成可重用的单元。为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,在Python中,一个

.py

文件就称之为一个模块(Module)。

1. 模块基础

模块是 Python 中的一个文件,后缀

.py

,包含变量、函数和导入语句等。

  • 创建模块:创建一个 .py 文件,文件名即模块名。
  • 定义函数和变量:在模块文件中定义函数和变量。

目录结构

在这里插入图片描述

示例模块

mymodule.py
#!/usr/bin/env python3   #让这个文件可以直接在Unix/Linux/Mac上运行# -*- coding: utf-8 -*-  #文件编码设置'这是一段注释'defgreet(name):returnf"Hello, {name}!"

PI =3.14159

__name ='ziyu'# 私有变量def__getname():return __name

defarea(radius):return PI * radius **2

2. 导入模块

创建

module-test.py

文件, 使用

import

语句导入模块,并使用

模块名

访问其内容。

# 两层含义, 1.导入了mymodule模块,2.定义了mymodule变量import mymodule  

print(mymodule.greet("张三"))print(mymodule.PI)
circle = mymodule.area(5)print(circle)

在这里插入图片描述

3. 从模块中导入特定内容

使用

from

关键字从模块中导入特定的函数、类或变量。

from mymodule import greet, PI

print(greet("Bob"))print(PI)

在这里插入图片描述

3.1

from … import *

把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明:

from mymodule import*print(greet("张三"))print(PI)

在这里插入图片描述

总结:

  • 一个模块只会被导入一次,不管你执行了多少次 import。
  • 类似__xxx__这样的变量是特殊变量
  • 类似_xxx__xxx这样的函数或变量就是非公开的(private),不应该被直接引用,比如_abc,__abc等;

4. 包

包是包含多个模块的目录,通常包含一个

__init__.py

文件, **

解决的问题是 多模块中变量名冲突或者重复

, 包是一种管理 Python

模块命名空间

的形式**

  • 创建包:创建一个目录,目录名即包名,并在目录中创建 __init__.py 文件。
  • 导入包:可以导入整个包或包中的特定模块。

示例包结构

mypackage/
    __init__.py
    moduleone.py
    moduletwo.py
    package-test.py

moduleone.py
defhello():return'module1'

moduletwo.py
defhello2():return'module2'

__init__.py
from … import * 

语句, 把一个模块的所有内容

全都导入

到当前的命名空间也是可行的

from moduleone import*from moduletwo import*

导入包

创建

package-test.py

文件 , 添加下面的内容

import mypackage

print(mypackage.hello())print(mypackage.hello2())

在这里插入图片描述

5. 模块搜索路径

Python 解释器在导入模块时会搜索模块文件,搜索路径由

sys.path

列表定义。

  • 查看搜索路径:打印 sys.path 可以查看模块搜索路径。
  • 修改搜索路径:可以通过修改 sys.path 来添加新的搜索路径。
import sys
print(sys.path)
sys.path.append('/path/to/my/modules')

6. 内置模块

Python 提供了许多内置模块,无需安装即可使用。

  • 常用内置模块:如 mathdatetimejson 等。

示例

import math

print(math.sqrt(16))

7. 第三方库

第三方库是 Python 社区提供的扩展模块,需要安装后才能使用。

  • 安装第三方库:通常使用 pip 工具安装。
  • 使用第三方库:安装后即可导入使用。
pip install requests
import requests

response = requests.get('https://api.github.com')print(response.json())

8.

__name__

属性

模块的

__name__

属性用于判断模块是被直接运行还是被导入。

if __name__ =="__main__":print("这是模块是直接被运行的")else:print("这个模块是被导入运行的")

9. 初始化和清理

atexit

是 Python 中的一个模块,它提供了一个简单的接口来注册一些函数,这些函数将在 Python 程序正常退出时被调用。这通常用于执行清理工作,比如保存状态、关闭文件、释放资源等。

以下是

atexit

模块的基本用法:

  1. 注册函数:使用 atexit.register(func, *args, **kwargs) 来注册一个函数,该函数将在程序退出时被调用。func 是要注册的函数,*args**kwargs 是传递给该函数的参数。
  2. 程序退出:程序可以通过多种方式退出,包括正常退出(例如使用 sys.exit() 或程序达到末尾)或由于异常而退出。
  3. 清理操作:使用 atexit 模块或 try...finally 结构。

示例

使用上面创建的

mypackage

包来测试

import mypackage

import atexit

defcleanup():print("执行清理工作...")defmain():print("程序开始执行。")# 注册清理函数
    atexit.register(cleanup)# 程序主逻辑 ---print(mypackage.hello())print(mypackage.hello2())if __name__ =="__main__":
    main()

10. 模块的

__all__

列表

__all__

列表定义了模块中哪些名称会被

from module import *

导入。

__all__ =['greet','PI','Circle']

总结

模块是 Python 代码组织的基础,通过合理使用模块,你可以编写更清晰、更可维护的代码。了解如何创建模块、导入模块、使用内置模块和第三方库是每个 Python 程序员的必备技能。希望这个梳理能帮助你更好地理解和使用 Python 3 的模块系统。如果你有任何问题或需要进一步的帮助,请随时联系我们。

标签: python pycharm 后端

本文转载自: https://blog.csdn.net/cdns_1/article/details/140714044
版权归原作者 ziyu_jia 所有, 如有侵权,请联系我们删除。

“Python 教程(九):内置模块与第三方模块”的评论:

还没有评论