我需要知道从tkinter import*和从tkinter import'module'有什么区别

2024-05-14 00:56:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我开始学习python,我正在做一些教程和视频教程。我使用sublimetext3编写代码,使用sublimeREPL的控制台运行文件和代码。 几天前,我不得不在网上搜索如何使sublimeREPL以空闲3次运行的方式运行,我成功了。在

现在的问题是,在我现在正在做的课程中,他们教我如何使用tkinter,但在视频中,这家伙编码:

from tkinter import *
colorchooser.askcolor()

它是有效的,但当我编写代码时,它就不起作用了。错误说明:

Traceback (most recent call last): File "", line 1, in NameError: name 'colorchooser' is not defined

我需要编码:

^{pr2}$

而且很管用。在

我只想知道我为什么要这样做?为什么第一种方法对我不管用?在

我不是一个会说英语的人我尽力了。在


Tags: 文件代码from编码视频tkinter方式教程
3条回答

from tkinter import*不起作用,因为您需要整个tkinter目录。 这就是为什么您必须为程序工作指定特定的colorchooser模块。在

from tkinter import colorchooser

您正在从package(这是一个结构化模块)tkinter导入(子)模块colorchooser(及其变量和函数)。在

Packages are a way of structuring Python’s module namespace by using “dotted module names”.

因此模块tkinter的结构如下:

^{pr2}$

使用from tkinter import *您是来自tkinter(事实上所有公共对象都不是以_开头)的importing all methods and variables但不是其子模块,这就是这两种方法不相同的原因:

... the statement from sound.effects import * does not import all submodules from the package sound.effects into the current namespace

source

不过,你可以(尽管很多人会说from ... import *是个坏习惯)

from tkinter.colorchooser import *

我不知道您在哪里看到的,但是colorchooser一直是tkinter中的一个模块,当您这样做时它不会被导入-

from tkinter import *

您必须使用-

^{pr2}$

你已经注意到了。在

相关问题 更多 >