2016-03-08 8 views
0

Я собрал очень быстрое доказательство концепции приложения python (~ 1000 строк), и теперь у него есть потенциал, который можно воспринимать более серьезно. Он говорит, что для наилучшей практики программирования, не используйтеКак поставить 'tk.' перед каждым объектом Tkinter правильный путь?

from <module> import * 

(я сделал это для доказательства концепции) Поскольку я использую Tkinter и TTK (плюс еще несколько), я решил просто вернуться назад и быстро добавьте 'tk.' перед моими кнопками/ярлыками/и т. д. Проблема в том, что у меня много липких команд и установка tk.N tk.S tk.E tk.W для каждого ключевого слова Tkinter займет некоторое время и не похоже, что так оно и должно быть (читаемость будет грубой для более длинные команды).

Есть ли какой-то трюк? Должен ли я сделать что-то вроде следующего?

from Tkinter import N S E W 

Благодарим за любые рекомендации.

+1

Вам просто не хватает запятой. Вот так: 'from tkinter import N, S, E, W' –

+1

. Это дойдет до мнения, но tk.N не так много символов, кроме N и N, не будет интуитивной переменной для кого-то, кто смотрит на ваш код позже, ИМО. Я бы предположил, что N - размерность изображения чего-либо или предел цикла, а не слово «север». Также обратите внимание, что вы можете использовать строку там, tk принимает это. Хотя я думаю, что sticky = N не может означать слишком много вещей, просто кажется, что вы просите о неприятностях. –

+0

Вы, кажется, спрашиваете: «Как мне сделать« из импорта tkinter »без этого. Вы не можете иметь это в обоих направлениях Вы можете, однако, «импортировать tkinter как tk; из tkinter import N, E, S, W', который больше всего вписывается в пространство имен' tk' ('tk.Button'), а N находится в глобальном пространстве имен. сказал, что члены с именами одного символа более читабельны как 'tk.N', чем' N'. – msw

ответ

3

Мой совет не использовать N, S, E и W (например: x.grid(..., sticky="nsew")). Просто используйте литералы. Константы не собираются меняться - они были одинаковыми с 1996 года, и сообщество tcl/tk очень серьезно относится к обратной совместимости.