我开始学习python,我正在做一些教程和视频教程。我使用sublime text 3来编写代码和sublimeREPL的控制台来运行文件和代码。 几天前,我不得不在网上搜索如何让sublimeREPL在IDLE 3运行时运行,我就做到了。
现在的问题是,在我正在做的课程中,他们正在教我如何使用tkinter,但在视频中的人员代码:
from tkinter import *
colorchooser.askcolor()
并且它有效,但是当我编码时,它不起作用。错误说:
回溯(最近一次呼叫最后一次):文件"",第1行,in NameError:name' colorchooser'未定义
我需要编码:
from tkinter import colorchooser
colorchooser.askcolor()
它有效。
我只需要知道为什么我必须这样做?为什么它不能以第一种方式为我工作?
我不是英语演讲者我尽我所能。
答案 0 :(得分:1)
使用
from tkinter import colorchooser
您正在从package(这是一个结构化模块)colorchooser
导入(sub - )模块 tkinter
(及其变量和函数)
包是一种使用“点模块名称”构建Python模块命名空间的方法。
所以模块tkinter
的结构如下:
tkinter/
colorchooser/
askcolor()
...
使用from tkinter import *
tkinter
来自_
(事实上所有公共对象都不是以from sound.effects import *
开头),而不是其子模块,这就是为什么这两种方法不一样的原因:
...语句
from ... import *
不会将包sound.effects中的所有子模块导入当前命名空间
(importing all methods and variables)
然而,你可以(尽管很多人会说from tkinter.colorchooser import *
是不好的做法)
$('.datetimepicker').datetimepicker({
format: 'mmd/dd/yyyy',
})
答案 1 :(得分:0)
不起作用,因为您需要整个tkinter目录。 这就是为什么你必须具体的colorchooser模块,以使你的程序工作。
答案 2 :(得分:0)
我不确定你在哪里看到它,但是colorchooser
一直是tkinter
内的一个模块,当你这样做时它不会被导入 -
from tkinter import *
您必须使用 -
专门导入它from tkinter import colorchooser
正如你已经观察到的那样。