Discuss / Python / 请教关于导包的问题

请教关于导包的问题

Topic source

jhbbbbbbbbbbb

#1 Created at ... [Delete] [Delete and Lock User]
from tkinter import *
from tkinter import messagebox

第一句为何包含不了第二句,只有加上第二句才可以运行。

from tkinter import * 会导入 thinter/__init__.py 下的所有变量

from tkinter import messagebox 会导入 thinter/messagebox.py,并用 messagebox 指向该模块

然而 thinter/__init__.py 代码中并没有 from tkinter import messagebox,所以只用 from tkinter import * 是无法导入 messagebox

简言之,你可以把 tkintertkinter.messagebox 视作两个不同的模块

廖雪峰

#3 Created at ... [Delete] [Delete and Lock User]

Python的包是个半残品,它没有像Java那样给出严格精确的定义

楼上说得对,但是from tkinter import *还可以从tkinter.py导入(如果有这个文件的话)

习惯就好了


  • 1

Reply