2016-03-08 1 views
0

J'ai jeté ensemble une application très rapide de preuve de concept python (~ 1000 lignes) et elle a maintenant un potentiel à prendre plus au sérieux. Il dit les meilleures pratiques de programmation, ne pas utiliserComment mettre 'tk.' devant chaque objet Tkinter de la bonne façon?

from <module> import * 

(je l'ai fait pour la preuve de concept) Parce que j'utilise Tkinter et TTK (plus quelques autres), je me suis dit que je venais de revenir en arrière et ajoutez rapidement 'tk.' devant mes boutons/étiquettes/etc. Le problème est, j'ai beaucoup de commandes collantes et en mettant tk.N tk.S tk.E tk.W pour chaque mot-clé Tkinter prendrait un certain temps et ne semble pas comme c'est comment il devrait être (la lisibilité serait brute pour les commandes plus longues).

Y a-t-il un truc? Devrais-je faire quelque chose comme ce qui suit?

from Tkinter import N S E W 

Merci pour toute aide.

+1

Il vous manque juste une virgule. Comme ceci: 'from tkinter import N, S, E, W' –

+1

Cela va descendre à l'opinion, mais tk.N n'est pas beaucoup plus de caractères que N et N ne seront pas une variable intuitive à quelqu'un qui regarde votre code plus tard, IMO. Je suppose que N est la dimension de l'image de quelque chose, ou une limite de boucle, pas le mot «nord». Notez également que vous pouvez utiliser une chaîne ici, tk accepte cela. Bien que je suppose que sticky = N ne puisse pas signifier trop de choses, il semble juste que vous demandiez des problèmes –

+0

Vous semblez vous demander "comment faire un' depuis l'importation de tkinter * "sans le faire. Vous pouvez, cependant, importer tkinter comme tk; à partir de tkinter, importer N, E, S, W, qui apporte le plus dans l'espace de noms 'tk' (' tk.Button') alors que N est dans l'espace de noms global. dit, les membres avec les noms d'un caractère sont beaucoup plus lisibles comme 'tk.N' que' N'. – msw

Répondre

3

Mon conseil est de ne pas utiliser N, S, E et W (par exemple: x.grid(..., sticky="nsew")). Utilisez simplement les chaînes littérales. Les constantes ne vont pas changer - elles ont été les mêmes depuis 1996 et la communauté tcl/tk prend très au sérieux la rétrocompatibilité.