Python:" import X"之间的区别是什么?和#34;来自X import *"?

时间:2017-04-21 08:15:42

标签: python tkinter import

在我尝试这个之前,我认为两者都是平等的:

$python
Python 2.7.13 (default, Dec 17 2016, 23:03:43)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import Tkinter
>>> root=Tk()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'Tk' is not defined
>>> from Tkinter import *
>>> root=Tk()

那么从模块中导入所有内容的这两种导入之间的核心区别是什么?

感谢。

1 个答案:

答案 0 :(得分:1)

当你导入x时,它将名称x绑定到x对象,它不会让你直接访问你模块的任何对象,如果你想要访问你需要指定的任何对象

x.myfunction()

另一方面,当您使用x import *导入时,它会将所有功能带入您的模块,因此您可以直接访问它而不是x.myfunction()

myfunction ()

例如,假设我们有模块 example.py

def myfunction ():
    print "foo"

现在我们有了主脚本 main.py ,它们使用了这个模块。

如果您使用简单导入,则需要像这样调用myfunction()

import example

example.myfucntion()

如果你使用from,你不需要使用模块名来引用功能,你可以直接调用这个

from example import myfunction

myfunction()