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

Python训练营打卡 Day30

 模块和库的导入

知识点回顾:

  • 导入官方库的三种手段

    • 直接导入整个库:使用 import library_name 语法。

    • 导入库中的特定模块或函数:使用 from library_name import module_namefrom library_name import function_name

    • 导入库并起别名:使用 import library_name as alias

  • 导入自定义库/模块的方式

  • 同一目录下导入:直接使用 import module_name

  • 不同目录下导入:需要将模块所在目录添加到 sys.path 中,或者使用相对导入。

  • 导入库/模块的核心逻辑:找到根目录(python解释器的目录和终端的目录不一致)

  1. Python 解释器会搜索 sys.path 中的目录来查找模块。
  2. sys.path 包括 Python 解释器的安装目录、当前工作目录等。
  3. 如果自定义模块不在这些目录中,需要手动添加模块路径到 sys.path

作业:自己新建几个不同路径文件尝试下如何导入

# main.py
import sys# 导入同一目录下的 module1
import module1
module1.function1()# 导入子目录下的 module2
from subdir import module2
module2.function2()# 导入子目录的子目录下的 module3
from subdir.submodule import module3
module3.function3()# 导入并起别名
import module1 as m1
m1.function1()# 添加模块路径到 sys.path 并导入
sys.path.append('./subdir/submodule')
import module3
module3.function3()
注意事项
  • 确保 subdirsubmodule 目录下有 __init__.py 文件,这样 Python 才会将它们识别为包。

  • 使用 sys.path.append() 时,路径需要是相对于当前工作目录的绝对路径或正确相对路径。

总结:用餐厅的场景来比喻模块和库的导入:

在一个大型餐厅里,菜谱(模块)被存放在不同的地方。有些菜谱在主厨房(当前目录),有些在专门的文件柜(子目录)里。不同的厨师(脚本)需要按照不同的菜谱(模块)来烹饪。

  1. 同一目录下导入:如果菜谱就在主厨房里,厨师可以直接拿过来用,就像直接使用 import module

  2. 子目录下导入:如果菜谱在文件柜里,厨师需要先打开文件柜(子目录),然后才能找到菜谱(子模块),这就像用 from subdir import module

  3. 跨目录导入:如果菜谱在另一个房间的文件柜里,厨师需要告诉别人去哪里找(添加路径到 sys.path),然后才能用那个菜谱。

@浙大疏锦行

http://www.xdnf.cn/news/7270.html

相关文章:

  • Docker安装MySQL数据库-单机版
  • 不锈钢保温容器行业2025数据分析报告
  • Hi3516CV610车牌识别算法源码之——实时从sensor采集视频 识别车牌
  • 使用PHP对接东南亚、日本、印度和印度尼西亚股票数据源
  • 医疗行业手持终端:推动医疗智能化的关键力量
  • 网络Tips20-007
  • lammps后处理:堆垛层错和孪晶的数量统计
  • 养生指南:解锁健康生活新方式
  • 阿里云web端直播(前端部分)
  • kotlin flow的两种SharingStarted策略的区别
  • 远程医疗结合贴肤芯片技术对体育院校学生提升运动表现的路径分析
  • 五分钟完成PolarDB替换postgresql
  • codeup添加流水线docker自动化部署
  • 初识MySQL · 索引
  • Text2SQL在Spark NLP中的实现与应用:将自然语言问题转换为SQL查询的技术解析
  • spring中的EnvironmentPostProcessor接口详解
  • 小乌龟git中的推送账户、作者账户信息修改
  • C#:多线程
  • 关于百度地图JSAPI自定义标注的图标显示不完整的问题(其实只是因为图片尺寸问题)
  • 2025.5.19总结
  • 使用 Qt QGraphicsView/QGraphicsScene 绘制色轮
  • k8s集成环境中pod运行的容器退出码141故障解决方案及排查方向,其他退出码也可以参考此篇
  • Linux内核深入学习(4)——内核常见的数据结构2——红黑树
  • 多模态大语言模型arxiv论文略读(八十三)
  • 云原生时代的系统可观测性:理念变革与实践体系
  • SpringCloud——EureKa
  • DeerFlow安装配置及使用案例
  • 黑马程序员C++2024新版笔记 第三章 数组
  • 一、内存调优
  • elasticsearch之记录es7.17升级8.17 springboot2.7.0 程序改造坑