【Python】模块

个人主页:Guiat
归属专栏:Python

文章目录

  • [1. 模块的概念](#1. 模块的概念)
  • [2. 模块的创建](#2. 模块的创建)
  • [3. 模块的导入](#3. 模块的导入)
  • [3.1 `import` 语句](#3.1 import 语句)
    • [3.2 `from...import` 语句](#3.2 from...import 语句)
    • [3.3 `from...import *` 语句](#3.3 from...import * 语句)
  • [4. 模块的搜索路径](#4. 模块的搜索路径)
  • [5. 模块的内置属性](#5. 模块的内置属性)
    • [5.1 `name` 属性](#5.1 __name__ 属性)
    • [5.2 `doc` 属性](#5.2 __doc__ 属性)
  • [6. 标准库模块](#6. 标准库模块)
    • [6.1 `math` 模块](#6.1 math 模块)
    • [6.2 `random` 模块](#6.2 random 模块)
    • [6.3 `os` 模块](#6.3 os 模块)
  • [7. 第三方模块](#7. 第三方模块)
    • [7.1 安装第三方模块](#7.1 安装第三方模块)
    • [7.2 使用第三方模块](#7.2 使用第三方模块)

正文

1. 模块的概念

在 Python 里,模块是一个包含 Python 定义和语句的文件,其文件名以 .py 结尾。模块可以定义函数、类和变量,还能包含可执行的代码。使用模块能够将代码组织成多个文件,增强代码的可维护性和可复用性。

2. 模块的创建

简单模块示例:

创建一个简单的模块,例如创建一个名为 math_operations.py 的文件,内容如下:

python 复制代码
# math_operations.py
def add(a, b):
    return a + b

def subtract(a, b):
    return a - b

PI = 3.14159

在这个模块中,定义了两个函数 addsubtract,还定义了一个常量 PI

3. 模块的导入

3.1 import 语句

使用 import 语句可以导入整个模块。导入后,可以使用模块名作为前缀来访问模块中的函数、类和变量。

python 复制代码
import math_operations

result_add = math_operations.add(3, 5)
print(result_add)  

result_subtract = math_operations.subtract(10, 4)
print(result_subtract)  

print(math_operations.PI)  

3.2 from...import 语句

使用 from...import 语句可以从模块中导入特定的函数、类或变量,导入后可以直接使用这些名称,无需加模块名前缀。

python 复制代码
from math_operations import add, PI

result = add(2, 7)
print(result)  

print(PI)  

3.3 from...import * 语句

使用 from...import * 语句可以导入模块中的所有内容。不过这种方式可能会导致命名冲突,不建议在生产代码中大量使用。

python 复制代码
from math_operations import *

result = subtract(8, 3)
print(result)  

4. 模块的搜索路径

当使用 import 语句导入模块时,Python 会按照以下顺序搜索模块:

  1. 当前目录:Python 首先会在当前运行脚本所在的目录中查找模块。
  2. 环境变量 PYTHONPATH 包含的目录 :可以通过设置 PYTHONPATH 环境变量来指定额外的模块搜索路径。
  3. Python 安装目录下的标准库目录:Python 自带的标准库模块会在这里被找到。

可以通过 sys.path 查看 Python 的模块搜索路径:

python 复制代码
import sys
print(sys.path)

5. 模块的内置属性

5.1 __name__ 属性

每个模块都有一个 __name__ 属性,当模块作为脚本直接运行时,__name__ 的值为 '__main__';当模块被其他模块导入时,__name__ 的值为模块名。可以利用这个属性来区分模块是作为脚本运行还是被导入。

python 复制代码
# math_operations.py
def add(a, b):
    return a + b

if __name__ == '__main__':
    result = add(2, 3)
    print(result)

5.2 __doc__ 属性

__doc__ 属性用于获取模块的文档字符串,即模块文件开头用三引号括起来的说明性文字。

python 复制代码
# math_operations.py
"""
这是一个用于数学运算的模块。
包含加法和减法函数。
"""
def add(a, b):
    return a + b

import math_operations
print(math_operations.__doc__)

6. 标准库模块

Python 拥有丰富的标准库模块,这些模块提供了各种功能,例如文件操作、网络编程、数据处理等。以下是一些常用标准库模块的示例:

6.1 math 模块

提供了数学相关的函数和常量。

python 复制代码
import math

result = math.sqrt(16)
print(result)  

print(math.pi)  

6.2 random 模块

用于生成随机数。

python 复制代码
import random

random_number = random.randint(1, 10)
print(random_number)  

6.3 os 模块

提供了与操作系统交互的功能,例如文件和目录操作。

python 复制代码
import os

# 获取当前工作目录
current_dir = os.getcwd()
print(current_dir)  

7. 第三方模块

除了标准库模块,Python 还有大量的第三方模块,这些模块可以通过包管理工具(如 pip)进行安装和使用。例如,numpy 用于科学计算,pandas 用于数据处理和分析。

7.1 安装第三方模块

使用 pip 安装 numpy 模块:

bash 复制代码
pip install numpy

7.2 使用第三方模块

python 复制代码
import numpy as np

arr = np.array([1, 2, 3, 4, 5])
print(arr)  

以上是一个使用第三方模块的简单例子。

结语

感谢您的阅读!期待您的一键三连!欢迎指正!

相关推荐
CaracalTiger5 小时前
什么是Clawdbot?Clawdbot下载、安装、配置教程(最新版Moltbot)
python·编辑器·aigc·idea·ai编程·intellij idea·agi
WJX_KOI10 小时前
Open Notebook 一个开源的结合AI的记笔记软件
python
0思必得011 小时前
[Web自动化] 反爬虫
前端·爬虫·python·selenium·自动化
2301_8223827611 小时前
Python上下文管理器(with语句)的原理与实践
jvm·数据库·python
喵手11 小时前
Python爬虫实战:从零搭建字体库爬虫 - requests+lxml 实战采集字体网字体信息数据(附 CSV 导出)!
爬虫·python·爬虫实战·零基础python爬虫教学·csv导出·采集字体库数据·字体库字体信息采集
2301_7903009612 小时前
Python深度学习入门:TensorFlow 2.0/Keras实战
jvm·数据库·python
程序员敲代码吗13 小时前
用Python生成艺术:分形与算法绘图
jvm·数据库·python
Yyyyy123jsjs13 小时前
如何通过免费的外汇API轻松获取实时汇率数据
开发语言·python
喵手13 小时前
Python爬虫实战:GovDataMiner —— 开放数据门户数据集元数据采集器(附 CSV 导出)!
爬虫·python·爬虫实战·python爬虫工程化实战·零基础python爬虫教学·open data·开放数据门户数据集列表