【问题标题】:Import * statement in PythonPython 中的 import * 语句
【发布时间】:2014-08-23 07:39:28
【问题描述】:

我以为

from tkinter import *

将所有名称导入我当前文件的命名空间,以便我可以直接访问所有名称。但是,我在实例化消息框时遇到错误:

messagebox.showinfo("Something")

添加后

from tkinter import messagebox

一切正常。我不明白为什么。第一个 import 语句不是已经导入了 tkinter 模块中的所有名称,包括消息框吗?

【问题讨论】:

    标签: python import tkinter


    【解决方案1】:

    导入模块 (tkinter) 不会自动导入子模块 (tkinter.messagebox),除非模块明确为您执行。

    【讨论】:

      【解决方案2】:

      messagebox 是 tkinter 的一个子模块。 您应该导入模块“消息框” (使用“import ... as ...”使其更短)

      import tkinter.messagebox
      tkinter.messagebox.showinfo("Something")
      

      或者如你所想,

      from tkinter import messagebox
      

      【讨论】:

        【解决方案3】:

        由于消息框是 Tkinter 模块中的一个文件,因此您无法通过调用 Tkinter 来访问它。要导入子模块,您必须像这样调用特定文件:

        from tkinter import messagebox
        

        【讨论】:

          猜你喜欢
          • 2016-06-02
          • 1970-01-01
          • 1970-01-01
          • 2014-05-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多