from Tkinter import *
import Tkinter as tk
为什么我不能只写?
为什么我不能只写
?import Tkinter
有人可以抽出几分钟给我讲解一下吗?
from Tkinter import *
导入了Tkinter中的所有暴露对象到当前命名空间中。
import Tkinter
将"namespace" Tkinter 导入到您的命名空间中,
import Tkinter as tk
也是一样,但是在本地将其重命名为'tk',以节省您的打字时间。
假设我们有一个名为foo的模块,其中包含类A、B和C。
然后import foo
让您可以访问foo.A、foo.B和foo.C。
当您使用import foo as x
时,您也可以访问它们,但是名称为x.A、x.B和x.C。
from foo import *
将直接在当前命名空间中导入A、B和C,因此您可以使用A、B和C来访问它们。
还有from foo import A, C
,这将导入A和C,但不包括B到当前命名空间中。
您还可以执行from foo import B as Bar
,这将使B在名称为Bar(在当前命名空间中)下可用。
通常情况下:当只需要导入模块的一个对象时,可以使用 from module import object
或者 from module import object as whatiwantittocall
。
当需要使用模块的一些功能时,可以使用import module
,或者import module as shortname
来节省您的打字时间。
from module import *
不建议使用,因为可能会意外地遮蔽(“覆盖”)名称,并且可能会丢失哪些对象属于哪个模块的跟踪。
import Tkinter
然而,如果这样做,你需要在使用每个Tk类的名字前加上Tkinter。
这相当不方便。
另一方面,以下代码:
import Tkinter as tk
通过只需要输入tk.
而不是Tkinter.
来规避问题。
至于:
from Tkinter import *
通常情况下,因为避免使用通配符导入的原因,这是一个不好的主意。
编写:
from tkinter import *
导入 tkinter
模块中的所有内容
编写:
import tkinter
导入tkinter
模块会产生结果,但是如果你这样做,为了能够调用任何方法,你必须使用:
tkinter.function_name()