python的import和from import的区别

先来看个示例,目录结构如下:

python示例目录结构

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()

标签: none

添加新评论