imp是个标准库
模块是变量名得包,就是所谓得命名空间,而在包里面得变量名称为属性,属性简单来说就是绑定在特定对象(模块)上得变量名.
这个from语句从技术上来讲,from复制了模块得属性
以便能够成为接收者得直接变量
这一次能够直接以title(变量)引用导入得字符串,而不是myfile.title(属性引用)
就是说导入过程虽然有点长但是你调用的时候可以少写一点.
无论是import导入还是from得导入模式,模块得文件都会被执行,并且导入得组件获得文件顶层幅值得变量名得访问权.上面得例子里面有点单调.但是当你得文件一旦东西多了以后,比如有类,函数得时候,这个概念就会变得而
这个简单的例子对外部的世界生成了三个属性
import得到了具有属性的模块
from会哦得到变量名的副本
其实上面是元组
方括号形式返回字符串对象
__x__这样的变量是内置的
py语言是有很多的模块共同构成的,一个模块文件就是一个变量包,而且每个文件都是自己包含自己的命名空间,一个模块是不能:"看见"别的模块的变量名的.除非就是被人为的暴露给另一个模块看.因为这些好处,模块文件在代码文件中起到了最小化命名冲突的作用.
所以到底该用哪个,from就像是一个搬运工,把一个文件复制到另一个文件,这个可能会在导入的文件里面有相同的变量名就是会被覆盖.而且也不说什么提示就是给你压住了.就是吧模块的初心分隔名称给丢掉了.
有人建议是import,一直用...但是from带来的副作用觉得不会遇到.我还是建议用from导入吧.