当前位置: 首页 > news >正文

day 30

模块和库的导入

导入官方库

标准导入:导入整个库

直接使用`import`语句

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

从库中导入特定项

当使用from语法从库中导入特定的函数或类时,这些函数或类就可以在您的代码中直接使用,不需要添加模块名作为前缀。因为在导入时没有包括模块的完整路径,前面也不能加上库名。

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

非标准导入:导入整个库

一般不用

如下

●这将导入`math`模块中定义的所有公开函数和变量。

●和上述from同理,直接调用`sin()`、`cos()`等,而无需`math.`前缀。

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

导入自定义库/模块

模块(Module)

本质:以 `.py` 结尾的单个文件,包含Python代码(函数、类、变量等)。

作用:将代码拆分到不同文件中,避免代码冗余,方便复用和维护。

包(Package)

在python里,包就是库

本质:有层次的文件目录结构(即文件夹),用于组织多个模块和子包。

核心特征:包的根目录下必须包含一个 `__init__.py` 文件(可以为空),用于标识该目录是一个包。

若编写一个计算圆面积的代码并保存为 `circle.py`,这个文件就是一个模块。

使用时通过 `import circle` 导入模块,调用其中的函数(如 `circle.calculate_area(5)`)。

# circle.py
import mathdef calculate_area(radius):return math.pi * radius ** 2

项目根目录/

├── circle2.py

└── utils/

    ├── __init__.py   (必需添加,将 model 目录标记为一个可导入的包)

    └── circle.py

└── model/

    └── main.py

应该用python -m model.main来运行,原因:

若直接使用 python model/main.py 运行,Python 解释器会把 model 目录当作当前工作目录,这可能致使 utils 包无法被正确导入,从而引发导入错误。

而使用 python -m model.main 运行时,Python 会将当前目录(项目根目录)添加到 sys.path 的开头。 sys.path 是 Python 解释器用于查找模块的路径列表,这样一来,Python 就能从项目根目录开始查找模块,进而正确导入 utils 包中的 circle.py 文件。

@浙大疏锦行

http://www.dtcms.com/a/201122.html

相关文章:

  • 开发指南116-font-size: 0的使用
  • Linux-进程信号
  • 存储系统03——数据缓冲evBuffer
  • ebpf程序入门编写
  • frida 配置
  • OCframework编译Swift
  • 【C++]string模拟实现
  • C++编程this指针练习
  • 【科研项目】大三保研人科研经历提升
  • Python元组全面解析:从入门到精通
  • 【基础】Windows开发设置入门8:Windows 子系统 (WSL)操作入门
  • 深入解析Java四大引用类型:从强引用到虚引用的内存管理艺术
  • 软件设计师E-R模型考点分析——求三连
  • STM32实战指南:DHT11温湿度传感器驱动开发与避坑指南
  • 关于ECMAScript的相关知识点!
  • 认识常规贴片电阻
  • 数学实验(方程和微分方程求解)
  • 11.4/Q1,GBD数据库最新文章解读
  • 第二十一次博客打卡
  • Prompt、Agent、MCP关系
  • Mergekit——高频合并算法 TIES解析
  • 嵌入式(C语言篇)Day10
  • DAPO:用于指令微调的直接偏好优化解读
  • 让数据驱动增长更简单! ClkLog用户行为分析系统正式入驻GitCode
  • 人工智能重塑医疗健康:从辅助诊断到个性化治疗的全方位变革
  • 物联网安全技术的最新进展与挑战
  • 深入理解仿函数(Functors):从概念到实践
  • java.io.IOException: Broken pipe \ 你的主机中的软件中止了一个已建立的连接
  • 【Python训练营打卡】day30 @浙大疏锦行
  • HarmonyOS:使用PickerController将编辑后的图片替换原图