[oeasy]python071_我可以自己做一个模块吗_自定义模块_引入模块_import_diy

本文涉及的产品
云原生网关 MSE Higress,422元/月
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
简介: 本文介绍了 Python 中模块的导入与自定义模块的创建。首先,我们回忆了模块的概念,即封装好功能的部件,并通过导入 `__hello__` 模块实现了输出 "hello world!" 的功能。接着,尝试创建并编辑自己的模块 `my_file.py`,引入 `time` 模块以获取当前时间,并在其中添加自定义输出。

导入import

回忆上次内容

  • 模块 就是 封装好功能 的 部件
  • 如 wifi模块
  • 导入 __hello__ module模块
  • 可以 输出hello world!
  • 看起来很简单

  • 我想要做个 自己的模块
  • 能行吗??🤔

新建文件 my_file

  • 尝试 编辑
  • my file.py
  • 注意
  • my file 之间 是 空格
vi my file.py
  • 运行结果
  • 打开了一个my

  • 为什么会这样?

继续观察

  • :ls
  • 底行命令ls
  • 显示文件缓冲列表

  • 可以看到打开了两个文件
  • my
  • file.py
  • 空格 成了
  • 切开 文件名的利刃
  • 这 怎么办 呢?

退回到shell

  • :q!
  • 先强制 退回到 shell

下划线的 作用

  • 下划线 可以代替 空格
  • 而且 用在 文件名中
  • python模块名 需要使用 蛇形命名法
  1. 编辑 my_file.py
vi my_file.py
  1. 先试着引入__hello__
  • 注意hello两端各有两个下划线

  1. 然后保存并运行

  • 确实在my_file.py中
  • 引入了__hello__模块
  • 想要再把 time中的asctime
  • 导入 my_file

my_file.py

import __hello__
import time
print(time.asctime())
  • 保存并运行

  • my_file.py如上图所示
  • 通过引入time包
  • 就可以得到当前时间了

  • 这my_file.py
  • 也可以作为
  • 自定义模块 引入吗?

游乐场实战

  • 自定义模块 my_file
  • 可以 被导入

  • my_file中有什么呢?
dir(my_file)
  • my_file 中包括
  • __hello__
  • time

  • my_file 可以
  • 作为 模块
  • 被导入到 另一个 py文件 吗?

编辑oeasy.py

  • 退出游乐场
  • 回到vim
  • 再次编辑 my_file.py

  • 键入:e oeasy.py
  • e 指的是 edit 编辑
  • 编辑一个oeasy.py

  • 在vim中
  • 新建了 oeasy.py 的
  • 缓存(buffer)

缓存列表

  • :ls
  • 列出 所有打开的
  • 缓存(buffer)

  • 如何 在缓存列表 中
  • 切换 当前buffer 呢?

切换 缓存

  • :b1
  • buffer1
  • 切换到 1号缓存文件
  • my_file.py
  • :b2
  • buffer2
  • 切换到 2号缓存文件
  • oeasy.py

  • 这样 就可以 切换
  • 当前 编辑的 缓存
  • buffer

引入模块

  • 打开 oeasy.py
  • 并进行 编辑
  • 在oeasy.py中 只有 一句话
  • import my_file
  • 导入 my_file模块

  • 保存并运行

运行结果

  • 虽然oeasy.py中
  • 只有 一句话
  • 但是通过 导入my_file模块
  • 实现了
  1. hello
  2. 报时

  • 可以在 自己模块 里
  • 输出说明 吗?

自定义模块

  • 编辑my_file.py
import __hello__
import time
print(time.asctime())
print("This is my first module")
  • 在自己的模块 my_file中
  • 输出了 一句话

  • 导入模块时
  • 完成输出
  • oeasy.py中
  • 可以使用
  • my_file模块中的 成员 吗?

切换缓存后

  • 切换 缓存
  • 来到my_file.py
  • 把最后一行
  • 修改 为
  • pi = 3.14

  • 可以在oeasy.py中
  • 访问到
  • my_file模块 中的
  • pi这个变量 吗?

查看 模块中的变量

  • my_file模块里
  • 都有些什么?
import my_file
print(dir(my_file))
  • my_file 里面有 导入的
  • 模块 __hello__
  • 变量 pi
  • 模块 time

  • 怎么引入?🤔

尝试 引用模块中的 变量

  • 总共两句话
  • 1.导入my_file这个模块
  • 2.输出my_file模块中 pi这个变量

  • 在oeasy.py中
  • 导入my_file模块之后
  • 尝试输出my_file.pi

  • 输出成功!
  • 可以直接 输出pi 吗?

尝试直接输出pi

  • 尝试直接输出pi

  • 尝试失败

  • pi 是模块中的变量
  • 想用 就必须带上模块的名字
  • my_file.pi
  • 中间.的意思是
  • my_file 模块中的 pi属性

名字空间

  • 就像
  • 访问 time模块中的
  • asctime函数
  • time.asctime()
import time
print(time.asctime)
  • 名字空间 就是
  • 模块的名字
  • 成员的所有者
  • 直接找pi找不到
  • 带着名字空间
  • my_file.file
  • 就可以找到了

总结

  • 这次导入了系统模块
  • __hello__
  • time
  • 自己 定义了 模块
  • my_file
  • 导入 my_file.py
  • 作为 自定义的
  • my_file模块
  • 可以使用
  • my_file.pi
  • my_file模块中的变量pi
  • 但不能直接 用pi

  • 如果 想 直接用pi
  • 又应该怎么办呢???🤔
相关文章
|
2月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
345 7
|
2月前
|
监控 安全 程序员
Python日志模块配置:从print到logging的优雅升级指南
从 `print` 到 `logging` 是 Python 开发的必经之路。`print` 调试简单却难维护,日志混乱、无法分级、缺乏上下文;而 `logging` 支持级别控制、多输出、结构化记录,助力项目可维护性升级。本文详解痛点、优势、迁移方案与最佳实践,助你构建专业日志系统,让程序“有记忆”。
254 0
|
2月前
|
JSON 算法 API
Python中的json模块:从基础到进阶的实用指南
本文深入解析Python内置json模块的使用,涵盖序列化与反序列化核心函数、参数配置、中文处理、自定义对象转换及异常处理,并介绍性能优化与第三方库扩展,助你高效实现JSON数据交互。(238字)
382 4
|
2月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
288 0
|
2月前
|
XML JSON 数据处理
超越JSON:Python结构化数据处理模块全解析
本文深入解析Python中12个核心数据处理模块,涵盖csv、pandas、pickle、shelve、struct、configparser、xml、numpy、array、sqlite3和msgpack,覆盖表格处理、序列化、配置管理、科学计算等六大场景,结合真实案例与决策树,助你高效应对各类数据挑战。(238字)
198 0
|
3月前
|
安全 大数据 程序员
Python operator模块的methodcaller:一行代码搞定对象方法调用的黑科技
`operator.methodcaller`是Python中处理对象方法调用的高效工具,替代冗长Lambda,提升代码可读性与性能。适用于数据过滤、排序、转换等场景,支持参数传递与链式调用,是函数式编程的隐藏利器。
134 4
|
3月前
|
存储 数据库 开发者
Python SQLite模块:轻量级数据库的实战指南
本文深入讲解Python内置sqlite3模块的实战应用,涵盖数据库连接、CRUD操作、事务管理、性能优化及高级特性,结合完整案例,助你快速掌握SQLite在小型项目中的高效使用,是Python开发者必备的轻量级数据库指南。
314 0
|
3月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
307 102
|
3月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
330 104
|
3月前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
270 103

推荐镜像

更多