2016-01-09 28 views
1

我學習使用Tkinter的,並在教程它告訴我進口W的Tkinter的,但W是隻是一個STR(「W」)。
我的問題是爲什麼使用Tkinter.W不是「w」。是不是因爲Tkinter有時會讓這個var等於別的依賴於系統的東西?Python的Tkinter的:爲什麼要使用Tkinter.W不STR「W」

+1

可能,但也因爲它更有意義。 – jonrsharpe

+0

我經常使用這些字符串,特別是在tkinter import *'import tkinter as tk''後導入大約80個常量,這會影響調試。如果我從tkinter import Tk,Text,...的方法做了',那麼我可能會添加例如RAISED到顯式列表,部分作爲我將使用的文檔。 –

回答

1

我一直使用的字符串值。我認爲使用這些常量毫無益處。他們改變的機會幾乎爲零。這些常數自Tkinter創建以來一直保持不變。

tkinter非常重視向後兼容性,所以即使它們被更改,字符串值也無疑會持續工作一兩年。

我的建議是不要使用常量。

1

這是出於用戶舒適大多完成。

考慮從PIL /枕頭Image類。它有一種方法可以在調整圖像大小的過程中創建圖像縮略圖。該方法有兩個參數,一個元組中的新大小和一個重採樣方法。這可以是抗混疊,雙線性,立方等等。這些內部是用整數值表示的,例如0,1等。如果您不知道哪個值表示哪個重採樣方法,那麼看起來很麻煩並且還可能導致更多錯誤。但從恆定的Image.BILINEAR訪問它和繁榮,你就完成了。

在你的情況下,進口W只是字符串"w"似乎是不必要的污染命名空間和打字tkinter.W"w"更長。這可能是如此。但是,請記住,程序中的常量是在一個地方定義的,所以如果您需要更改它們,很容易。你永遠不知道,即使你看不到它,模塊可能在內部使用常量W

這也導致你所指出的原因。根據系統或版本,常數可能有不同的值。通過使用內部一致的常量而不是靜態的硬編碼值,當您在不同的系統或版本上重用該代碼時,您可以更輕鬆地工作。

相關問題