📅  最后修改于: 2023-12-03 14:55:24.846000             🧑  作者: Mango
在 Python 中,tkinter
是一个经典的 GUI (图形用户界面) 库。当我们使用 tkinter
时,我们可以使用 import tkinter
或者 from tkinter import <specific module>
来导入需要的模块。然而,有时候程序员会使用 from tkinter import *
来导入所有的 tkinter
模块,这样虽然很方便,但同时也会带来一些问题。
以下是几个理由:
tkinter
中定义了很多常用的名字,如果使用了 from tkinter import *
,那么很可能会出现名字冲突的问题,这会导致程序出错,使得调试变得困难。
当我们使用 from tkinter import *
后,读取代码时很难知道我们使用了哪些模块。如果使用 import <specific module>
,我们可以清晰地看到我们使用了哪些模块。
from tkinter import *
可能会导入我们并不需要的命名,这会导致潜在的安全问题。例如,有些模块可能会创建 eval
或 exec
的别名,这会带来潜在的风险,从而将程序暴露在攻击风险下。如果我们使用 import <specific module>
,那么我们可以精确地控制每个模块的数量和名称,从而更好地掌控程序的安全性。
总之,使用 from tkinter import *
导入所有的模块可能会带来不必要的问题。我们应该尽可能地使用 import <specific module>
来导入需要的模块,并且只导入我们实际需要的模块。这会使代码更可读,更安全,更易于维护。
参考资料: