Affectation dynamique de nom de variable
Lors de l'utilisation de tkinter, il est nécessaire de générer dynamiquement des variables, par exemple en générant dynamiquement les variables var1...var10.
Utilisation de exec pour l'affectation dynamique
exec est une fonction intégrée dans python3, qui prend en charge l'exécution dynamique de code Python.
Utilisation de exec pour l'affectation dynamique
exec est une fonction intégrée dans python3, qui prend en charge l'exécution dynamique de code Python.
Exemple
... exec('var{} = {}'.format(i, i))
...
>>> print(var0, var1, var2, var3 ,var4)
0 1 2 3 4
>>>
Affectation dynamique à l'aide de l'espace de noms
Dans l'espace de noms de Python, les noms et les valeurs des variables sont stockés dans un dictionnaire. Vous pouvez utiliser les fonctions locals() et globals() pour obtenir respectivement l'espace de noms local et l'espace de noms global.
Exemple
>>> for i in range(5):
... names['n' + str(i) ] = i
...
>>> print(n0, n1, n2, n3, n4)
0 1 2 3 4
>>>
Utilisation de variables dynamiques dans les classes
Les attributs des objets de classe Python sont stockés dans __dict__. __dict__ est un dictionnaire, dont les clés sont les noms d'attributs et les valeurs correspondent aux valeurs d'attributs.
Exemple
0 1 2 3 4
>>> class Test_class(object):
... def __init__(self):
... names = self.__dict__
... for i in range(5):
... names['n' + str(i)] = i
...
>>> t = Test_class()
>>> print(t.n0, t.n1, t.n2, t.n3, t.n4)
0 1 2 3 4
Appel de variables dynamiques
En fait, pour des variables répétitives, nous n'appelons généralement pas les variables de cette façon, comme : var0, var1, var2, var3, var4....varN. Nous pouvons utiliser la méthode suivante pour appeler dynamiquement des variables.
Définissez d'abord les variables suivantes :
Exemple
... exec('var{} = {}'.format(i, i))
...
>>> print(var0, var1, var2, var3 ,var4)
0 1 2 3 4
Utilisation de la fonction exec
De même, vous pouvez utiliser exec pour appeler des variables
Exemple
... exec('print(var{}, end=" ")'.format(i))
...
0 1 2 3 4
Utilisation de l'espace de noms
Comme locals() et globals() dans l'espace de noms renvoient tous deux un dictionnaire, utilisez la méthode get du dictionnaire pour obtenir les valeurs des variables.
Exemple
>>> for i in range(5):
... print(names.get('var' + str(i)), end=' ')
...
0 1 2 3 4
Adresse d'origine : https://www.cnblogs.com/technologylife/p/9211324.html