news 2026/7/15 6:25:37

Day 32模块和库的导入

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Day 32模块和库的导入

常见的第三方库:

导入库的三种手段:

1.导入整个库

# 方式1:导入整个模块 import math print("方式1:使用 import math") print(f"圆周率π的值:{math.pi}") print(f"2的平方根:{math.sqrt(2)}\n")

2.从库中导入特定的项

# 方式2:导入特定的函数或变量 from math import pi, sqrt print("方式2:使用 from math import pi, sqrt") print(f"圆周率π的值:{pi}") print(f"2的平方根:{sqrt(2)}\n")

3.非标准导入整个库

from math import * print(f"圆周率π的值:{pi}") print(f"2的平方根:{sqrt(2)}")

包与模块的定义:

包是 Python 中组织多个模块的目录结构,本质上是一个包含__init__.py文件的文件夹,Python 3.3+ 后__init__.py可以为空,甚至省略,但为了兼容性建议保留,用于识别该目录是一个包。包的核心作用是分层管理模块,把功能相关的多个模块归到同一个目录下,让代码结构更清晰。

包的结构如下:

my_tools/ # 这是一个包(文件夹) __init__.py # 包的标识文件(可空) calculator.py # 子模块:计算相关 string_utils.py # 子模块:字符串处理相关

包的使用:

# main.py # 方式1:导入包中的具体模块 from my_tools import calculator, string_utils print(calculator.add(10, 20)) # 输出 30 print(string_utils.reverse_str("hello")) # 输出 olleh # 方式2:直接导入模块中的函数/类 from my_tools.calculator import Circle from my_tools.string_utils import reverse_str circle = Circle(3) print(circle.area()) # 输出 28.27431 print(reverse_str("python")) # 输出 nohtyp

模块本质上就是一个以.py为后缀的 Python 文件,这个文件里可以包含变量、函数、类、语句等任意 Python 代码。模块的核心作用是代码复用和命名空间隔离—— 把功能相关的代码放在一个文件里,既方便重复调用,也避免不同功能的代码变量 / 函数名冲突。

模块的结构:

# calculator.py(模块文件) PI = 3.14159 def add(a, b): """加法函数""" return a + b class Circle: """计算圆的面积""" def __init__(self, radius): self.radius = radius def area(self): return PI * self.radius **2

模块的使用:

# main.py import calculator # 导入整个模块 print(calculator.PI) # 访问模块中的变量,输出 3.14159 print(calculator.add(2, 3)) # 调用模块中的函数,输出 5 circle = calculator.Circle(5) print(circle.area()) # 调用模块中的类方法,输出 78.53975

不同目录下模块的导入:

1.`main.py` 和 `circle.py` 都在同一目录

# main.py from circle import calculate_area # 或者: import circle (然后用 circle.calculate_area) radius = 5 area = calculate_area(radius) print(f"半径为 {radius} 的圆,面积是: {area}")
#在项目根目录的同一子目录下 # model/main.py from circle import calculate_area # 或者: import circle (然后用 circle.calculate_area) radius = 5 area = calculate_area(radius) print(f"半径为 {radius} 的圆,面积是: {area}")

运行对应的文件直接在终端运行对应的 python main.py / python model/main.py

2.`main.py`在根目录,`circle.py`在子目录

# main.py from model.circle import calculate_area # 或者: from model import circle (然后用 circle.calculate_area,因为此时你是导入了整个模块) radius = 5 area = calculate_area(radius) print(f"半径为 {radius} 的圆,面积是: {area}")

运行:pyhton main.py

而`circle.py`在根目录,`main.py`在子目录

from circle import calculate_area # 或者: import circle (然后用 circle.calculate_area) radius = 5 area = calculate_area(radius) print(f"半径为 {radius} 的圆,面积是: {area}")

运行:pythom -m model/main.py

@浙大疏锦行

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/15 5:01:21

7、雾无线接入网络中的协作信号处理技术解析

雾无线接入网络中的协作信号处理技术解析 1. F-RANs理论性能与边缘缓存 在F-RANs(雾无线接入网络)中,边缘缓存和信号处理对系统性能有着重要影响。相关参数设置为:(\varphi_{C}^{k} = 0.15),(\varphi_{K}^{k} = 0.35),每个内容对象的大小(B_{K} = 10)Mbits。 通过仿真…

作者头像 李华
网站建设 2026/7/14 4:07:33

9、雾无线接入网络中的灵活网络管理

雾无线接入网络中的灵活网络管理 在雾无线接入网络(F-RAN)中,灵活的网络管理至关重要。通过整合来自上层的请求服务和订阅信息、切片实例层的RAN与UE信息以及集中编排层的切片实例配置信息,可以满足切片实例的性能要求并提升整个F-RAN的性能。下面将详细介绍F-RAN接入切片…

作者头像 李华
网站建设 2026/7/14 23:20:41

【打靶日记】HackMyVm 之 icarus

主机发现 ┌──(root㉿xhh)-[~/Desktop/xhh/HMV/icarus] └─# arp-scan -I eth1 -l192.168.56.146 08:00:27:d5:6a:34 PCS Systemtechnik GmbH主机地址为:192.168.56.146 端口扫描 ┌──(root㉿xhh)-[~/Desktop/xhh/HMV/icarus] └─# nmap -p- 192.168.5…

作者头像 李华
网站建设 2026/7/14 13:48:45

9 个降AI率工具,本科生论文必备!

9 个降AI率工具,本科生论文必备! 论文被AI检测“亮红灯”,本科生的焦虑谁懂? 对于许多本科生来说,写论文从来都不是一件轻松的事。从选题到开题,从查资料到写大纲,每一个环节都充满了挑战。而最…

作者头像 李华
网站建设 2026/7/15 1:14:23

9 个降AI率工具,本科生开题报告AI助手推荐

9 个降AI率工具,本科生开题报告AI助手推荐 论文写作的“重灾区”:降重难题让本科生苦不堪言 对于大多数本科生来说,撰写开题报告是大学阶段最令人头疼的任务之一。它不仅需要大量的文献查阅和资料整理,更要在规定字数内清晰地表达…

作者头像 李华
网站建设 2026/7/13 11:07:28

数据库查询的调试艺术:从403 Forbidden到成功

在软件开发过程中,数据库调试是一个常见的挑战,尤其是在没有直接访问开发和测试数据库的情况下。本文将探讨一个真实的案例,分析并解决一个有趣的数据库调试问题。 问题背景 在项目中,开发人员常常无法直接访问开发和测试数据库,这使得调试变得非常困难。为了解决这个问…

作者头像 李华