python的import和from import的区别
先来看个示例,目录结构如下:
base.py文件代码:
#!/usr/bin/python
class Base:
def call(self):
print 123
test.py文件代码:
#!/usr/bin/python
import base
a = Base()
a.call()
执行test.py,输出结果:
Traceback (most recent call last):
File "C:\Users\dondonliu\Desktop\test\test.py", line 5, in <module>
a = Base()
NameError: name 'Base' is not defined
执行出错了。修改test.py文件代码:
#!/usr/bin/python
import base
a = base()
a.call()
执行,输出结果:
Traceback (most recent call last):
File "C:\Users\dondonliu\Desktop\test\test.py", line 5, in <module>
a = base()
TypeError: 'module' object is not callable
还是报错了。修改test.py代码:
#!/usr/bin/python
from base import Base
a = Base()
a.call()
执行,输出结果:
123
执行成功了,这是为什么呢?
查了一番资料,__使用import方式引入模块的话,使用时需要加上模块名__。
类似上面的示例,test.py正确的代码应该是:
#!/usr/bin/python
import base
a = base.Base()
a.call()