[oeasy]python0140_导入_import_from_as_namespace_

简介: [oeasy]python0140_导入_import_from_as_namespace_

导入import 回忆上次内容

  • 上次学习了
  • try
  • except


  • 注意要点
  • 半角冒号
  • 缩进
  • 输出错误信息


  • 有错就报告
  • 不要隐瞒
  • 否则找不到出错位置
  • 还可以用traceback把
  • 系统报错信息原样输出



  • 但是代码量好多啊
  • 10多 行了 🤯
  • 可以把他输入部分和输出部分么?🤔


  • 我们先试试
  • 怎么引用 其他的py文件


构建环境

  1. 先新建一个namespace文件夹
  2. 然后进入这个文件夹
  3. 新建两个文件
  4. 被引用模块
  • my_module.py


  1. 主体程序
  • oeasy.py





添加图片注释,不超过 140 字(可选)


  • 然后进去
  • 编辑这两个文件
  • vi -o my_module.py oeasy.py
  • -o 是分窗口编辑文件



效果

  • 结果如下图所示



添加图片注释,不超过 140 字(可选)


  • oeasy.py中输入
  • import my_module


  • my_module.py中输入
  • print("in another")


保存并运行

  • ctrl+k 切换到上方windows
  • ctrl+j 切换到下方windows



添加图片注释,不超过 140 字(可选)


  • :wqa
  • 全部保存并退出
  • w 的意思是先保存
  • q 退出vim
  • a 代表 all buffers 所有缓存



运行结果

  • 运行的是oeasy.py
  • 输出了"i am my_module.py"


  • 这说明
  • 导入成功了




添加图片注释,不超过 140 字(可选)


  • 运行的是
  • oeasy.py


  • oeasy.py中导入了
  • my_module.py


  • my_module.py中
  • 输出了 "i am my_module.py"


  • 通过导入my_module.py
  • 执行了其中的代码


  • 导入对应的关键词import
  • 应该如何理解呢?


import

  • 进口(import)
  • 这里指的是导入模块
  • 这也是python强大之处
  • 可以导入各种使用的包来使用




添加图片注释,不超过 140 字(可选)


  • 可以导入多个文件吗?😱

导入多个文件

  • 上图建议的是
  • 不同模块分行导入




添加图片注释,不超过 140 字(可选)


  • 导入除了可以调用对方代码
  • 还能做什么呢?


尝试引用包内变量



添加图片注释,不超过 140 字(可选)


  • 可以在my_module.py中定义变量
  • 在oeasy.py中引用吗?


尝试运行



添加图片注释,不超过 140 字(可选)


  • pi没有找到😭



添加图片注释,不超过 140 字(可选)


  • 不慌
  • 好饭不怕晚


  • 不是把这些字节码都运行了么?
  • 但是这里面有个作用域(namespace)的问题
  • i 属于 my_module.py
  • 而不属于oeasy.py
  • 所以直接运行找不到i


  • 那怎么办?

修改

  • 只要说清楚这个i来自于my_module就可以了
  • 用一个点(.)
  • 就可以说明从属关系
  • 点(.)的意思是
  • 在 my_module . pi
  • 就是 在my_module i





添加图片注释,不超过 140 字(可选)


  • :wa
  • write all
  • 两个文件都保存


  • :!python3 %
  • 用外部命令python3运行当前文件




添加图片注释,不超过 140 字(可选)


  • pi找到了😌
  • 在my_module.py中
  • pi就是一个标准的变量声明赋值


  • 如果我就想在 oeasy.py 中直接使用 pi
  • 可能么?

修改

  • 声明了一个变量pi
  • 并把mymodule.i的值赋给他




添加图片注释,不超过 140 字(可选)


  • 还有其他写法吗?

from...import...

  • 这句话好像好使



添加图片注释,不超过 140 字(可选)


  • local()函数
  • 可以查看本地局部变量




添加图片注释,不超过 140 字(可选)


  • 本地变量会撞车吗?

撞车(local name crash)



添加图片注释,不超过 140 字(可选)


  • 因此要特别注意尽量
  • 不要使用from xxx import *
  • 这种容易撞车的语句




添加图片注释,不超过 140 字(可选)


  • 撞车是什么样子的!?
  • 可以欣赏一下车祸现场吗?


车祸现场



添加图片注释,不超过 140 字(可选)


  • my_module.pi 被 math.pi 撞飞了



添加图片注释,不超过 140 字(可选)


  • 这其实也是名字空间(namespace)的意义

namespace

  • 名字空间是个好主意!



添加图片注释,不超过 140 字(可选)


  • 那可以给导入进来的变量改名么?

from ... import ... as ...



添加图片注释,不超过 140 字(可选)


  • 可以的
  • 这样可以把变量名更明确一点
  • 其实就是又起了个名字
  • 然后进行赋值




添加图片注释,不超过 140 字(可选)


  • 任务达成!!!
  • 总结一下 !✿✿ヽ(°▽°)ノ✿


总结

  • 我们这次导入了外部的py文件
  • import my_module
  • 导入一个自己定义的模块


  • 可以使用my_module中的变量
  • 不能 直接使用 my_module.py文件中的变量
  • 只要加my_module.作为前缀就可以



  • 直接导入导入变量、函数
  • from my_module import pi
  • 可以导入my_module.pi 并作为pi变量使用


  • from my_module import pi as my_module_pi
  • 导入变量并重命名



  • 上次那个苹果香蕉统计程序
  • 能封装成文件模块
  • 再导入么?🤔


目录
相关文章
|
2月前
|
XML 关系型数据库 MySQL
python将word(doc或docx)的内容导入mysql数据库
用python先把doc文件转换成docx文件(这一步也可以不要后续会说明),然后读取docx的文件并另存为htm格式的文件(上一步可以直接把doc文件另存为htm),python根据bs4获取p标签里的内容,如果段落中有图片则保存图片。(图片在word文档中的位置可以很好的还原到生成的数据库内容) 我见网上有把docx压缩后解压获取图片的,然后根据在根据xml来读取图片的位置,我觉得比较繁琐。用docx模块读取段落的时候还需要是不是判断段落中有分页等,然而转成htm之后就不用判断那么多直接判断段落里的样式或者图片等就可以了。
31 1
|
2月前
|
Python
python中导入模块/包的几种方式
python中导入模块/包的几种方式
25 0
|
2月前
|
安全 Python
在Python中导入类
在Python中导入类
23 1
|
2月前
|
Python
请描述 Python 中的模块和包的概念,以及如何导入和使用它们。
请描述 Python 中的模块和包的概念,以及如何导入和使用它们。
26 3
|
4月前
|
Python
Python通过导入 calendar 模块来计算每个月的天
Python通过导入 calendar 模块来计算每个月的天
|
4月前
|
人工智能 Shell 程序员
[oeasy]python005_退出游乐场_重启游乐场_系统态shell_应用态_quit
[oeasy]python005_退出游乐场_重启游乐场_系统态shell_应用态_quit
16 0
|
4月前
|
Shell Python
[oeasy]python0003_ 终端大冒险_终端命令_whoami_pwd_ls
[oeasy]python0003_ 终端大冒险_终端命令_whoami_pwd_ls
37 5
|
2月前
|
开发者 Python
Python语言的导入系统
Python语言的导入系统
|
2月前
|
程序员 开发者 Python
Python新手常见问题五:如何避免模块导入错误?
在Python编程中,模块的导入是每个开发者必须掌握的基础技能之一。模块化设计让代码更加有序、可复用和易于维护。然而,在实际操作过程中,新手程序员常常会遇到一些关于模块导入的问题,导致程序无法正常运行。本文将探讨几种常见的模块导入场景及容易犯错的操作,并提供相应的解决方案。
34 4
|
2月前
|
存储 数据处理 数据格式
Python中导入Excel数据:全面解析与实践
Python中导入Excel数据:全面解析与实践
42 0