python---模块

文章目录

模块(Module)是 Python 中组织代码的基本单位,它是一个包含 Python 定义和语句的文件,文件名就是模块名加上 .py 后缀。

模块的主要作用

1、代码重用:可以将常用的功能封装在模块中,供多个程序使用

2、命名空间管理:避免命名冲突

3、代码组织:将相关代码组织在一起,提高可维护性

模块分类

1、内置模块

2、第三方模块

需要手动下载,打开cmd命令行,使用命令"pip install 模块名"下载模块,

使用命令"pip uninstall 模块名" 卸载模块

3、自定义模块

使用模块

导入模块

bash 复制代码
# 导入整个模块
import math

# 使用模块中的内容
print(math.pi)  # 3.141592653589793

从模块导入特定内容

这样子变量可以直接使用不需要 "模块名.变量",但是也会和本文件的文件名产生冲突。

示例代码1:

bash 复制代码
# 从模块导入特定函数/变量
from math import pi, sqrt

print(pi)      # 3.141592653589793
print(sqrt(16))  # 4.0

示例代码2:

bash 复制代码
# 从模块导入特定函数/变量
from math import pi, sqrt

pi = 5

print(pi)      # 5
print(sqrt(16))  # 4.0

给模块或导入内容起别名

bash 复制代码
# 给模块起别名
import numpy as np

# 给导入的内容起别名
from math import sqrt as square_root

# 支持多个数据同时起别名
from math import pi as a, sqrt as b

导入模块中的所有内容(不推荐)

变量和方法会起冲突,后导入的覆盖先导入的

bash 复制代码
from math import *  # 导入math模块中的所有内容

print(pi)  # 可以直接使用,不需要math.前缀

创建自定义模块

1、创建一个 .py 文件,例如 mymodule.py

2、在文件中定义函数、变量等

bash 复制代码
# mymodule.py
def greet(name):
    return f"Hello, {name}!"

version = "1.0"

3、在其他文件中导入使用

bash 复制代码
import mymodule

print(mymodule.greet("Alice"))  # Hello, Alice!
print(mymodule.version)         # 1.0

模块搜索路径

当导入一个模块时,Python 会按以下顺序搜索:

1、当前目录

2、PYTHONPATH 环境变量指定的目录

3、Python 安装的默认路径

可以通过 sys.path 查看搜索路径:

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

特殊变量 name

每个模块都有一个 name 属性:

1、当模块被直接运行时,name 等于 'main '

2、当模块被导入时,name 等于模块名

常用于编写测试代码:

示例代码1:

为了测试目前是否运行该文件

bash 复制代码
# mymodule.py
def func():
    print("This is a function")

if __name__ == '__main__':
    # 以下代码只在直接运行该模块时执行
    print("Running the module directly")
    func()

输出结果1:

bash 复制代码
Running the module directly
This is a function

示例代码2:

bash 复制代码
print(__name__)

输出结果2:

bash 复制代码
__main__

示例代码3:

在新建的mymodule模块中假如以下代码:

bash 复制代码
def getfilename():
    print(__name__)

在运行的文件中假如以下代码:

bash 复制代码
import mymodule
mymodule.getfilename()

输出结果3:

输出结果为导入模块的名称

bash 复制代码
mymodule

标准库模块示例

Python 自带许多有用的标准库模块:

bash 复制代码
import os          # 操作系统接口
import sys         # 系统相关功能
import math        # 数学运算
import random      # 生成随机数
import datetime    # 日期时间处理
import json        # JSON 处理
import re          # 正则表达式