072_namespace_名字空间_导入
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开始
-
我们上次有两个文件
-
被引用模块
-
my_file.py
-
主体程序
-
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
-
被两次赋值
-
第二次赋值 覆盖了 第一次
添加图片注释,不超过 140 字(可选)
-
本地变量pi 只有一个值
-
3.141592553589793
-
最开始从 my_file模块中
-
赋过来的 3.14被覆盖掉了
-
新 导进来的变量
-
也 可以 改名 吗?
from ... import ... as ...
-
可以的
-
from ... import ... as ...
-
可以把变量名 更明确一点
-
其实就是 起个新名字
-
然后 进行赋值
添加图片注释,不超过 140 字(可选)
-
这样的话
-
本地 就有了 两个不同的 pi
-
my_pi
-
math_pi
-
分别来自 两个不同名字空间
添加图片注释,不超过 140 字(可选)
-
任务达成!!!
-
总结一下 !✿✿ヽ(°▽°)ノ✿
-
什么 是 名字空间 呢?
名字空间(namespace)
-
my_file 和 math 就是名字空间
-
不同名字空间中
-
可以 有 相同的 变量pi
-
他们 彼此之间 不受影响
添加图片注释,不超过 140 字(可选)
-
不同的 命名空间
-
可以 同时存在
-
相同 变量名
-
互不干扰
python之禅最后一句
-
导入this模块
import this
-
展示 python之禅
-
名字空间 是 个好主意!
添加图片注释,不超过 140 字(可选)
-
可以用 名字空间 保护
-
各自空间中的 变量
-
彼此之间 不会 覆盖
-
目前 还有个 小瑕疵
pep-8
-
导入 共分成 三类
-
标准库
-
第三方库
-
本地库
-
类别之间需要一个空行
添加图片注释,不超过 140 字(可选)
-
根据这一原则我们修改代码
最终代码
-
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 字(可选)
-
为什么 从模块中导入的变量 需要改名呢???🤔
-
下次再说 👋
-
gitee->oeasy教您玩转python教程: 面向零基础初学者的简明易懂的 Python3 入门课程,对没有编程经验的同学也非常友好。在vim下从浅入深,逐步学习。从基础入门学习到爬虫。