为什么有了from tkinter import *这句导入后还要再加上这句from tkinter import messagebox导入才能使用messagebox的方法呢?第一句不是已经将tkinter的所有函数和类都导入进来了吗?
希望各位大神详细解答下,万分感谢。
为什么有了from tkinter import *这句导入后还要再加上这句from tkinter import messagebox导入才能使用messagebox的方法呢?第一句不是已经将tkinter的所有函数和类都导入进来了吗?
希望各位大神详细解答下,万分感谢。
并不是所有模块都是全导入的
messagebox默认不导入,需要指定导入。
解释一下~
包导入的过程和模块的基本一致,只是导入包的时候会执行此包目录下的__init__.py而不是模块里面的语句了。另外,如果只是单纯的导入包,而包的__init__.py中又没有明确的其他初始化操作,那么此包下面的模块是不会自动导入的。
Python3\Lib\tkinter
tkinter是个包,也就是含有__init__.py
的文件夹。
tkinter具体导入的什么,去看__init__.py
的内容即可知道了~__init__.py
里没有导入messagebox.py
,所以,需要另外指定导入。
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
如果py文件中没有定义__all__,import * 会导入所有的符号;
如果定义了__all__,只会import __all__中申明的符号。
比如: