百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

[oeasy]python071_自己做一个模块吗_自定义模块_引入模块_import

csdh11 2025-04-07 13:20 4 浏览

导入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__
  2. 注意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模块
    • 实现了
    • hello
    • 报时

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

自定义模块

  • 编辑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
    • 又应该怎么办呢???
  • 下次再说
  • 蓝桥->https://www.lanqiao.cn/courses/3584
  • github->https://github.com/overmind1980/oeasy-python-tutorial
  • gitee->https://gitee.com/overmind1980/oeasypython

相关推荐

[oeasy]python0110 屏幕点阵字体_3x5_5x7_雅达利字库

回忆上次内容上次回顾了字符字型的进化过程从谷腾堡活字印刷中的...

oeasy教您玩转vim - 29 - # 垂直翻页

垂直翻页回忆上节课内容...

[oeasy]python071_自己做一个模块吗_自定义模块_引入模块_import

导入import回忆上次内容...

[oeasy]python0129_unicode中文字符序号十三道大辙_字符编码解码

unicode中文字符分类回忆上次内容字符集从博多码到...

[oeasy]python0082_VT100_演化_颜色设置_VT选项_基础色_高亮色_

更多颜色回忆上次内容上次了解了控制序列背后的故事一切标准都是从无到有的就连负责标准的组织也是从无到有的...

「oeasy」python0010 - python虚拟机解释执行py文件的原理

解释运行程序回忆上次内容我们这次设置了断点...

[oeasy]python0137_相加运算_python之禅_import_this_显式转化

变量类型相加运算回忆上次内容上次讲了是从键盘输入变量input函数可以有提示字符串需要有具体的变量接收输入的字符串...

python代码是如何执行的?(python 代码运行)

解释运行程序回忆上次内容py文件的程序是按照顺序一行行挨排解释执行的我们可以python3-mpdbhello.py来对程序调试...

[oeasy]python0145_版本控制_git_备份还原

git版本控制回忆上次内容上次我们了解了try的完全体try尝试运行...

[oeasy]python072_名字空间是怎么玩的_from_import_as_导入

名字空间是怎么玩的_from_import_as_导入_namespace回忆上次内容...

[oeasy]python070_如何导入模块_导入模块的作用_hello_dunder

如何导入模块_导入模块的作用_hello_dunder_双下划线回忆上次内容...

「oeasy」python0020换行字符_feed_line_lf_反斜杠n_B语言_安徒生

换行字符回忆上次内容struct包可以让我们使用封包格式...

[oeasy]python0115_西里尔字符集_Cyrillic_俄文字符编码_KOI

各语言字符编码回忆上次内容上次回顾了非ascii的拉丁字符编码的进化过程0-127是ascii的领域...

[oeasy]python074_ai辅助编程_水果程序_fruits_apple_banana加法

回忆上次内容上次直接从模块中导入变量、函数...

[oeasy]python049_帮助手册_pydoc_manual_document

帮助手册回忆上次内容上次了解了注释注释是为了让程序更可读注释不会影响程序运行速度...