导入tkinter与tk和tkinter导入之间的区别

Chr*_*ung 10 python import tkinter

我知道这是一个愚蠢的问题,但我刚刚开始学习python而且我对python没有很好的了解.我的问题是有什么区别

from Tkinter import *
Run Code Online (Sandbox Code Playgroud)

import Tkinter as tk
Run Code Online (Sandbox Code Playgroud)

?为什么我不能写

import Tkinter
Run Code Online (Sandbox Code Playgroud)

有人可以花几分钟来启发我吗?

ch3*_*3ka 17

from Tkinter import *将Tkinter中的每个公开对象导入当前名称空间. import Tkinter在命名空间中导入"命名空间"Tkinter并 import Tkinter as tk执行相同操作,但在本地"重命名"为"tk"以节省您的输入

假设我们有一个模块foo,包含类A,B和C.

然后import foo,您可以访问foo.A,foo.B和foo.C.

当你这样做时,你也import foo as x可以访问它们,但是在名称xA,xB和xC下 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 objectfrom module import object as whatiwantittocall.

当您需要某些模块功能时,您可以import module或者import module as shortname为您节省输入.

from module import * 不鼓励,因为你可能会意外地影子("覆盖")名称,并可能失去跟踪哪些对象属于哪个模块.