Python模块

在Python的标准安装中,包含了一组自带的模块,这些模块被称为"标准库"。比如常用的math、random、datetime、os、json等。

此外,还有很多的第三方模块,比如pymysql 、numpy、request、pandas等等。通过这些强大的扩展库,形成了Python的强大"生态圈"

模块的概念和基本使用

Python的模块,其实就是.py结尾 的Python文件,模块里可以定义类,变量、函数,以及可执行的代码。我们导入模块,就可以用这些模块的功能。

1、import 模块名1 as 别名1,模块名2 as 别名2,模块名3 as 别名3,......;导入整个模块;

注:导入整个模块内所有成员,包括变量,函数,类等。

2、from 模块名 import 成员名1 as 别名1,成员名2 as 别名2,...成员名n as 别名n;导入模块中指定的成员;

注:成员可以是变量,函数,类等。

导入模块:

复制代码
import random # 导入python内置的random模块

print(random.randint(1,10))

带别名:

复制代码
import random as r # import 模块名 as 别名

print(r.randint(1,10))

导入多个模块

复制代码
import random,time

print("等待5秒执行start")
time.sleep(5)
print(random.randint(1,10))
print("等待5秒执行end")

导入模块成员

复制代码
from random import randint as r1
print(r1(1,10))

自定义模块

可以自己定义一些模块,来实现项目的功能。

新建math_util.py

复制代码
# 模块级别的变量
PI = 3.14159


# 函数
def add(a, b):
    """返回两个数的和"""
    return a + b


def multiply(a, b):
    """返回两个数的乘积"""
    return a * b


def circle_area(radius):
    """计算圆的面积"""
    return PI * radius ** 2


# 类
class Calculator:
    def __init__(self):
        self.history = []

    def calculate(self, operation, a, b):
        if operation == 'add':
            result = add(a, b)
        elif operation == 'multiply':
            result = multiply(a, b)
        else:
            return None

        self.history.append(f"{operation}({a}, {b}) = {result}")
        return result

再新建一个test.py

复制代码
import math_util as m

print("测试数学运算模块:")
print(f"5 + 3 = {m.add(5, 3)}")
print(f"半径5的圆面积: {m.circle_area(5)}")

'''
输出 :
测试数学运算模块:
5 + 3 = 8
半径5的圆面积: 78.53975
'''

在模块中添加测试代码

在模块中添加可执行的测试代码,模块被导入的时候,可执行代码也会被导和并且执行。不想测试代码被执行,可以利用模块内置的name变量来进行区分。

如果直接用python来运行一个模块,name的变量值为main。

如果该模块被导入其他程序中,name变量的值变是模块名。

因此,如果希望测试代码只在有在直接使用python命令进才执行,可以在调用测试代码时增加判断 :当name变量值等于main时才可以调用测试函数。、

复制代码
# 模块测试代码
if __name__ == "__main__":
    print("测试模块:")
相关推荐
小小龙学IT25 分钟前
Python Polars 高性能数据处理引擎深度解析
开发语言·python·rust·1024程序员节
csdn_aspnet31 分钟前
JavaScript 未排序数组中第 k 个最小/最大元素 (预期线性时间)
python
quantdash_cc32 分钟前
如何利用标的信息为研究股票池补充名称和交易所信息?
开发语言·python·pandas·量化交易·1024程序员节·股票数据·quantdash
数字化转型分享点滴33 分钟前
机加工企业上大数据分析系统有哪些容易踩的坑?
python·1024程序员节
B2_Proxy1 小时前
Scrapy 代理 IP 调度进阶:基于 Redis 与中间件的高可用架构实战
python·scrapy·1024程序员节
在世修行1 小时前
智学文枢:AI 客户端封装
python·http·ai·1024程序员节·pyside
言乐62 小时前
Python实现三轴联动根据数据自动打磨镜片模型
开发语言·python
万化冥合2 小时前
如何批量把 PPT 转成视频?
python·1024程序员节
xiangjiaodalishi2 小时前
武汉玖叁鹿科技:我们把 GEO 服务做成了可以审计的交付工程
python·1024程序员节
zzu123zsw2 小时前
为什么 Python 做 Agent 总在并发中崩溃?拆解 Blockcell 在 Rust 下的 Host-Cell 隔离与自愈状态机
开发语言·python·rust·大模型·ai agent