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

>>> for i in range(5):
... 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

>>> names = locals()
>>> 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

>>> print(n0, n1, n2, n3, n4)
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

>>> for i in range(5):
...     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

>>> for i in range(5):
...     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

>>> names = locals()
>>> 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