在我尝试这个之前,我认为两者都是平等的:
$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()
那么从模块中导入所有内容的这两种导入之间的核心区别是什么?
感谢。
答案 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()