Chinaunix首页 | 论坛 | 博客
  • 博客访问: 221497
  • 博文数量: 264
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2671
  • 用 户 组: 普通用户
  • 注册时间: 2020-08-10 06:35
文章分类
文章存档

2025年(16)

2024年(33)

2023年(86)

2022年(53)

2021年(42)

2020年(34)

我的朋友

分类: Python/Ruby

2025-03-10 20:06:43


072_namespace_名字空间_from_import_as_导入227 播放 · 0 赞同视频点击可播放视频
名字空间是怎么玩的_from_import_as_导入_namespace 回忆上次内容
  • 上次导入了系统模块
  • __hello__
  • time

  • 自己 定义了 模块
  • my_file

  • 导入 my_file.py
  • 作为 自定义的
  • my_file模块

  • 可以使用
  • my_file.pi
  • my_file模块中的变量pi

  • 但不能直接 用pi
添加图片注释,不超过 140 字(可选)
  • 如果 想 直接用pi
  • 又应该怎么办呢???????

从shell开始
  1. 我们上次有两个文件
  2. 被引用模块
  • my_file.py

  1. 主体程序
  • oeasy.py


vi my_file.py oeasy.py
  • :ls效果
添加图片注释,不超过 140 字(可选)
  • 依次打开了两个文件
添加图片注释,不超过 140 字(可选)
  • :b2
  • 切到oeasy.py

  • 可以直接输出pi吗?
修改oeasy.py import my_file pi = my_file.pi print(pi)
  • 如下图所示
添加图片注释,不超过 140 字(可选)
  • 声明本地变量pi
  • 并将my_file模块中
  • pi的值(3.14)
  • 赋给 本地变量pi


添加图片注释,不超过 140 字(可选)
  • 本地 都有 哪些 变量?
locals()
  • locals函数
  • 查询本地变量

import my_file pi = my_file.pi print(pi) print(locals())
  • 相比 dir()
  • 只显示 本地变量名

  • locals()
  • 不但 显示本地变量
  • 还显示 变量的值

添加图片注释,不超过 140 字(可选)
  • 本地变量 包括
  • my_file 模块
  • pi 浮点小数变量

  • 模块 可以 改名吗?
导入模块 import my_file as my_module pi = my_module.pi print(pi) print(locals())
  • 确实可以重命名
添加图片注释,不超过 140 字(可选)
  • 只想 引入 模块中的变量
  • 可以吗?

提问
添加图片注释,不超过 140 字(可选)
from...import...
  • from my_file import pi
  • 就相当于 声明了 本地变量pi
  • 并将 my_file.pi的值(3.14)
  • 赋给 本地变量pi

添加图片注释,不超过 140 字(可选)
  • 真的没有导入模块吗?
  • locals()函数
  • 查看 本地局部变量

添加图片注释,不超过 140 字(可选)
  • 本地变量
  • 导入 my_file模块
  • 只导入 my_file.pi值
  • 赋给 本地变量pi


  • 不同 模块中 导入的
  • 同名 变量
  • 会冲突吗?

  • 可以观察到冲突现场吗?
冲突现场
  • 声明了pi之后
  • 先将 my_file模块中 pi的值(3.14)
  • 赋给 本地变量pi

添加图片注释,不超过 140 字(可选)
  • math模块中
  • pi的值(3.141592553589793)
  • 赋给 本地变量pi

  • 本地变量名(local name)pi
  • 被两次赋值
  • 第二次赋值 覆盖了 {BANNED}中国第一次

添加图片注释,不超过 140 字(可选)
  • 本地变量pi 只有一个值
  • 3.141592553589793
  • {BANNED}最佳开始从 my_file模块中
  • 赋过来的 3.14被覆盖掉了

  • 新 导进来的变量
  • 也 可以 改名 吗?

from ... import ... as ...
  • 可以的
  • from ... import ... as ...
  • 可以把变量名 更明确一点
  • 其实就是 起个新名字
  • 然后 进行赋值

添加图片注释,不超过 140 字(可选)
  • 这样的话
  • 本地 就有了 两个不同的 pi
  • my_pi
  • math_pi
  • 分别来自 两个不同名字空间


添加图片注释,不超过 140 字(可选)
  • 任务达成!!!
  • 总结一下 !??ヽ(°▽°)ノ?

  • 什么 是 名字空间 呢?
名字空间(namespace)
  • my_file 和 math 就是名字空间
  • 不同名字空间中
  • 可以 有 相同的 变量pi
  • 他们 彼此之间 不受影响

添加图片注释,不超过 140 字(可选)
  • 不同的 命名空间
  • 可以 同时存在
  • 相同 变量名
  • 互不干扰

python之禅{BANNED}最佳后一句
  • 导入this模块
import this
  • 展示 python之禅
  • 名字空间 是 个好主意!

添加图片注释,不超过 140 字(可选)
  • 可以用 名字空间 保护
  • 各自空间中的 变量
  • 彼此之间 会 覆盖

  • 目前 还有个 瑕疵
pep-8
  • 导入 共分成 三类
  1. 标准库
  2. 第三方库
  3. 本地库
  4. 类别之间需要一个空行

添加图片注释,不超过 140 字(可选)
  • 根据这一原则我们修改代码
{BANNED}最佳终代码
  • math 是 系统类库 在前面
  • my_file 是 本地自建类库 在后面
  • 之间有一个空行
from math import pi as math_pi from my_file import pi as my_pi print(locals()) 总结
  • 这次直接从模块中导入变量、函数
  • from my_file import pi
  • 导入my_file.pi
  • 并作为 pi 使用

  • from my_file import pi as my_pi
  • 导入变量 并 重命名


添加图片注释,不超过 140 字(可选)
  • 为什么 从模块中导入的变量 需要改名呢???????
  • 下次再说 ????
  • 蓝桥->
  • github->
  • gitee->


阅读(10) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~