Python中的from等价于import的语法
Python中导入module文件有两种方式:import和from。这里并不会列举import和from的具体使用方法,而是比较两者之间的差别。
对于from语句来说,它其实是等价于下面的import语法:
from module import name1, name2,... # 等价于 import module name1 = module.name1 name2 = module.name2 del module
通过等价语法,我们可以发现:
1 from语法实际上还是需要导入整个模块文件,而不管导入了多少个变量,即使导入一个变量也是如此
2 被导入module文件中的属性实际上进行了赋值操作,如果这种复制操作发生在文件范围,则引入了全局变量,如果发生在函数范围,则引入了局部变量;
3 使用from导入,无法使用module.attr的语法,因为这个module变量最后会被删除(但是导入的module文件本身不会,依然存在sys.modules属性里面)