Python Tkinter:为什么要使用Tkinter.W而不是str" w"

时间:2016-01-09 22:53:26

标签: python tkinter python-2.x

我正在学习使用Tkinter,在教程中它告诉我从Tkinter导入W,但W只是一个str(" w")。 我的问题是为什么不使用Tkinter.W" w"。是因为Tkinter有时会使var等于依赖系统的其他东西吗?

2 个答案:

答案 0 :(得分:2)

我总是使用字符串值。我认为使用常量绝对没有任何好处。他们改变的几率几乎为零。自Tkinter创建以来,这些常数保持不变。

tkinter非常认真地反向兼容,所以即使它们被更改,字符串值无疑会继续工作一两年。

我的建议是永远不要使用常量。

答案 1 :(得分:1)

这主要是为了方便用户。

考虑来自PIL / Pillow的Image课程。它有一种方法可以在调整图像大小的过程中从图像中创建缩略图。该方法有两个参数,一个元组中的新大小和一个重采样方法。这可以是抗锯齿,双线性,立方等。这些在内部用整数值表示,如0,1等。如果你不知道哪个值代表哪种重采样方法,看起来很麻烦,也可能导致更多错误。但是从常量Image.BILINEAR访问它并繁荣,你就完成了。

在您的情况下,仅为字符串W导入"w"似乎不必要地污染命名空间,并且键入tkinter.W的时间长于"w"。可能是这样。但是,请记住,程序中的常量是在一个地方定义的,所以如果你不得不改变它们,那么它很容易。你永远不知道,模块可能在内部使用常量W,即使你没有看到任何一点。

这也导致你指出的原因。常量可能具有不同的值,具体取决于系统或版本。通过使用内部一致的常量而不是静态的硬编码值,当您在不同的系统或版本上重用该代码时,可以使您的生活更轻松。