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

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.dtcms.com/a/200681.html

相关文章:

  • JavaWeb:Spring配置文件( @ConfigurationProperties)
  • centos把jar包配置成服务并设置开机自启
  • AIGC工具平台-卡通图片2D转绘3D
  • Docker构建 Dify 应用定时任务助手
  • linux系统双击EXE运行,在统信UOS上无缝运行EXE!统信Windows应用兼容引擎V3来了
  • PyTorch模型保存方式
  • 【软考-架构】15、软件架构的演化和维护
  • 力扣热题100之删除链表的倒数第N个节点
  • 鸿蒙 Location Kit(位置服务)
  • 双周报Vol.72:字段级文档注释支持、视图类型现为值类型,减少内存分配
  • Python网络爬虫入门指南
  • 【CodeBuddy 】从0到1,让网页导航栏变为摸鱼神器
  • 视图+触发器+临时表+派生表
  • 用于判断主子关系的方法的实现(orm是efcore)
  • [特殊字符] Word2Vec:将词映射到高维空间,它到底能解决什么问题?
  • 深入解析OkHttp与Retrofit:Android网络请求的黄金组合
  • 蓝桥杯1447 砝码称重
  • Python 实例传递的艺术:四大方法解析与最佳实践
  • 用 RefCounted + WeakPtr 构建线程安全的异步模块
  • 【OpenCV基础2】图像运算、水印、加密、摄像头
  • 如何在 Windows 11 或 10 上安装 FlutterFire CLI
  • CSS提高性能的方法有哪些
  • C++面试4-sizeof解析
  • RabbitMQ的简介
  • C 语言学习笔记(函数2)
  • AI在网络安全中的应用之钓鱼邮件检测
  • Python列表 vs 元组:全面对比解析(新手友好版)
  • MYSQL8.0常用窗口函数
  • input组件使用type=“number“的时候,光标自动跳到首位
  • 【Tools】VMware Workstation 17.6 Pro安装教程