我正在学习使用Tkinter,在教程中它告诉我从Tkinter导入W,但W只是一个str(" w")。 我的问题是为什么不使用Tkinter.W" w"。是因为Tkinter有时会使var等于依赖系统的其他东西吗?
答案 0 :(得分:2)
我总是使用字符串值。我认为使用常量绝对没有任何好处。他们改变的几率几乎为零。自Tkinter创建以来,这些常数保持不变。
tkinter非常认真地反向兼容,所以即使它们被更改,字符串值无疑会继续工作一两年。
我的建议是永远不要使用常量。
答案 1 :(得分:1)
这主要是为了方便用户。
考虑来自PIL / Pillow的Image
课程。它有一种方法可以在调整图像大小的过程中从图像中创建缩略图。该方法有两个参数,一个元组中的新大小和一个重采样方法。这可以是抗锯齿,双线性,立方等。这些在内部用整数值表示,如0,1等。如果你不知道哪个值代表哪种重采样方法,看起来很麻烦,也可能导致更多错误。但是从常量Image.BILINEAR
访问它并繁荣,你就完成了。
在您的情况下,仅为字符串W
导入"w"
似乎不必要地污染命名空间,并且键入tkinter.W
的时间长于"w"
。可能是这样。但是,请记住,程序中的常量是在一个地方定义的,所以如果你不得不改变它们,那么它很容易。你永远不知道,模块可能在内部使用常量W
,即使你没有看到任何一点。
这也导致你指出的原因。常量可能具有不同的值,具体取决于系统或版本。通过使用内部一致的常量而不是静态的硬编码值,当您在不同的系统或版本上重用该代码时,可以使您的生活更轻松。