072_namespace_名字空间_from_import_as_导入227 播放 · 0 赞同视频
名字空间是怎么玩的_from_import_as_导入_namespace
回忆上次内容
-
导入 my_file.py
-
作为 自定义的
-
my_file模块
-
可以使用
-
my_file.pi
-
my_file模块中的变量pi
-
如果 就想 直接用pi
-
又应该怎么办呢???????
-
我们上次有两个文件
-
被引用模块
-
主体程序
修改oeasy.py
import my_file pi = my_file.pi print(pi)
-
声明本地变量pi
-
并将my_file模块中
-
pi的值(3.14)
-
赋给 本地变量pi
import my_file pi = my_file.pi print(pi) print(locals())
-
locals()
-
不但 显示本地变量
-
还显示 变量的值
-
本地变量 包括
-
my_file 模块
-
pi 浮点小数变量
导入模块
import my_file as my_module pi = my_module.pi print(pi) print(locals())
-
from my_file import pi
-
就相当于 声明了 本地变量pi
-
并将 my_file.pi的值(3.14)
-
赋给 本地变量pi
-
真的没有导入模块吗?
-
locals()函数
-
查看 本地局部变量
-
本地变量
-
没导入 my_file模块
-
只导入 my_file.pi值
-
赋给 本地变量pi
-
声明了pi之后
-
先将 my_file模块中 pi的值(3.14)
-
赋给 本地变量pi
-
math模块中
-
pi的值(3.141592553589793)
-
赋给 本地变量pi
-
本地变量名(local name)pi
-
被两次赋值
-
第二次赋值 覆盖了 {BANNED}中国第一次
-
本地变量pi 只有一个值
-
3.141592553589793
-
{BANNED}最佳开始从 my_file模块中
-
赋过来的 3.14被覆盖掉了
from ... import ... as ...
-
这样的话
-
本地 就有了 两个不同的 pi
-
my_pi
-
math_pi
-
分别来自 两个不同名字空间
-
my_file 和 math 就是名字空间
-
不同名字空间中
-
可以 有 相同的 变量pi
-
他们 彼此之间 不受影响
-
不同的 命名空间
-
可以 同时存在
-
相同 变量名
-
互不干扰
-
可以用 名字空间 保护
-
各自空间中的 变量
-
彼此之间 不会 覆盖
-
标准库
-
第三方库
-
本地库
-
类别之间需要一个空行
-
-
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 使用