我一年前学习了一个 Python 教程,并且非常喜欢它,所以我想我应该尝试将 tkinter 小部件合并到一些东西中,因为,好,GUI。我见过的许多涵盖初学者 tkinter 的教程都以以下行开始代码:
from tkinter import *
这有令人信服的理由吗?我的意思是,为什么(或不)加载所有内容?
最佳答案
是的,这是一种非常糟糕的做法,原因有两个:
- 代码可读性
- 覆盖变量/函数等的风险
对于第 1 点: 让我们看一个例子:
from module1 import *
from module2 import *
from module3 import *
a = b + c - d
在这里,看到代码后,没有人会知道 b
、c
和 d
实际属于哪个模块。
另一方面,如果你这样做:
# v v will know that these are from module1
from module1 import b, c # way 1
import module2 # way 2
a = b + c - module2.d
# ^ will know it is from module2
这对你来说更加干净,而且加入你团队的新人也会有更好的想法。
对于第2点:假设module1
和module2
都有变量b
。当我这样做时:
from module1 import *
from module2 import *
print b # will print the value from module2
此处,module1
中的值丢失了。即使在 module1
中声明了 b
并且我已经编写了期望我的代码使用 module1.b 的代码,也很难调试为什么代码不起作用
.
如果您在不同的模块中有相同的变量,并且您不想导入整个模块,您甚至可以这样做:
from module1 import b as mod1b
from module2 import b as mod2b
关于python - 一般来说,在 python 代码中使用语句 "from module import *"是一个不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40517214/