Je me suis demandé si les définitions de variables suivantes pouvaient être rendues intelligentes, alors j'ai pris note. Veuillez commenter si vous dites "il y a une meilleure façon".
STYLE_RED = 1
STYLE_BLUE = 2
STYLE_GREEN = 3
STYLE_YELLOW = 4
:
Je parle de "use enum", mais comme enum ne peut pas être utilisé par défaut dans la série Python 2.7, j'aimerais faire quelques astuces pour le réaliser. (Pour la série Python 2.7, un backport de la fonction enum appelée enum34 est également fourni)
Ces définitions de variables sont souvent ajoutées et supprimées au cours du développement, et il est souvent nécessaire de décaler toutes les valeurs dans la dernière partie, en particulier lors de l'ajout d'une nouvelle définition entre des variables définies.
STYLE_RED = 1
SYTLE_BLACK = 2 #Je veux vraiment l'ajouter ici en tant que 2
STYLE_BLUE = 3 #Décaler la valeur dans la dernière étape
STYLE_GREEN = 4 #C'est aussi..
STYLE_YELLOW = 5 #C'est aussi...
:
La question est de savoir si une telle addition / suppression peut ou non être effectuée rapidement.
Comme ça.
(
RED,
BLUE,
GREEN,
YELLOW,
) = range(0, 4)
print 'Color RED: %d' % RED
Puisque les valeurs ne sont pas spécifiées individuellement, il n'est pas nécessaire de décaler à chaque fois en ajoutant une variable, mais le deuxième argument de la fonction range ()
doit être changé en même temps.
(
RED,
BLACK, #ajouter à
BLUE,
GREEN,
YELLOW,
) = range(0, 5) # 4->Changer en 5
En utilisant tapple, cela devient une variable invariante, donc c'est très utile en fonction de l'application. Il ressemble à une énumération, et vous pouvez le traiter séquentiellement en lui donnant un nom.
COLORS = (
RED,
BLUE,
:
) = range(0, ...)
Puisque l'opération ++
ne peut pas être utilisée en Python, l'implémentation suivante n'est pas possible.
int colorVal = 0
int RED = colorVal++;
int BLUE = colorVal++;
:
Si vous faites cela en Python, cela ressemblera (probablement) à ceci:
_cv = 0
RED = _cv = (_cv + 1)
BLUE = _cv = (_cv + 1)
GREEN = _cv = (_cv + 1)
YELLOW = _cv = (_cv + 1)
Puisque le côté droit est la même expression, il est facile d'ajouter des variables. Cependant, le code n'a pas l'air intelligent de toute façon, donc je pense personnellement que la méthode d'utilisation des tapples est semblable à Python. (Il est préférable d'utiliser enum docilement)